Сведения о вопросе

Codeliver

10:57, 21st August, 2020

Теги

.net   wpf    

WPF способ устранения сглаживания

Просмотров: 449   Ответов: 6

Сглаживание не может быть отключено в WPF. Но я хочу удалить размытый вид шрифтов WPF, когда они маленькие.

Одним из возможных вариантов было бы использование компонента .net 2.0. Это выглядит так, как будто он потеряет способность прозрачности и поддержку смешивания. Хотя никогда не пробовал.

У кого-нибудь есть решение для этого? Есть ли у него какие-то недостатки?

Спасибо



  Сведения об ответе

SEEYOU

03:40, 5th August, 2020

Анти-псевдоним можно отключить начиная с WPF 4.0 с помощью следующей опции:

TextOptions.TextFormattingMode="Display"


  Сведения об ответе

prince

05:09, 22nd August, 2020

Вы пробовали поместить элемент управления WindowsFormsHost на WPF window/control?, который позволит WPF отобразить элемент управления WinForms.

Обновление ноябрь 2012 : этому вопросу и ответу уже 4 года. Рендеринг текста с тех пор улучшился в WPF . Пожалуйста, не ставьте WinForms элемента управления в WPF приложения; это был хакерский способ исправить рендеринг шрифтов. В этом больше нет необходимости.


  Сведения об ответе

fo_I_K

02:02, 22nd August, 2020

У Microsoft есть блог, посвященный рендерингу текста в WPF here WPF Text Blog

В .NET 4.0 годах ситуация определенно улучшилась.


  Сведения об ответе

PAGE

03:11, 1st August, 2020

SnapsToDevicePixels абсолютно не влияет на рендеринг текста.


  Сведения об ответе

#hash

15:20, 6th August, 2020

Смещение объектов, которые вы рисуете, которые вы не хотите сглаживать, на 0.5px. Это приведет к тому, что механизм рисования будет рисовать на фактических пикселях, а не на краю пикселей (что является значением по умолчанию). При рисовании по краю пикселя сглаживание обычно происходит по окружающим пикселям.

Это похоже на рисование Кварт на Mac.

Edit: Извините, я не читал вопрос. Это не работает для шрифтов, только для фигур. Однако я оставлю комментарий здесь для справки.


  Сведения об ответе

dump

13:25, 15th August, 2020

Попробуйте использовать свойство UIElement.SnapsToDevicePixels для элементов UI вашего окна. Люди, как правило, сообщают , что он лучше всего работает для графики и линий, но я заметил улучшение отрисовки текста с его помощью.


Ответить на вопрос

Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться