2008-08-22 2 views
10

Сглаживание cannot be turned off в WPF. Но я хочу удалить размытый вид шрифтов WPF, когда они маленькие.WPF Anti aliasing обходной путь

Одна из возможностей - использовать компонент .net 2.0. Похоже, что он потеряет возможность прозрачности и поддержку Blend. Никогда не пробовал.

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

Спасибо

ответ

3

Вы пробовали положить WindowsFormsHost контроль на окне/управления WPF? Это позволит WPF отображать элемент управления WinForms.

UPDATE November 2012: Этот вопрос и ответ 4 года. Text rendering has since improved in WPF. Пожалуйста, не помещайте элементы управления WinForms в приложениях WPF; это был хакерский способ исправить рендеринг шрифтов. Он больше не нужен.

+7

Этот ответ говорит о текущем состоянии WPF. Будем надеяться, что это улучшится в VS2010. ;) – 2009-09-04 09:11:00

+0

wtf, это перегиб – paIncrease 2012-11-13 20:17:48

+1

Да, это так, но этот вопрос более 4 лет. С тех пор ситуация улучшилась, особенно рендеринг шрифтов WPF: http://blogs.msdn.com/b/text/archive/2009/08/24/wpf-4-0-text-stack-improvements.aspx – 2012-11-14 04:30:38

-3

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

1

SnapsToDevicePixels абсолютно не влияет на визуализацию текста.

0

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

Это похоже на чертеж Quarts на Mac.

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

1

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

вещи определенно улучшились в .NET 4.0.

9

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

TextOptions.TextFormattingMode="Display" 
Смежные вопросы