Обходной путь WPF Anti aliasing

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

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

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

Спасибо

22.08.2008 09:54:43
6 ОТВЕТОВ
РЕШЕНИЕ

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

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

3
14.11.2012 04:31:53
Этот ответ много говорит о текущем состоянии WPF. Будем надеяться, что это улучшится в VS2010. ;)
Robert Jeppesen 4.09.2009 09:11:00
Да, это так, но этот вопрос старше 4 лет. С тех пор ситуация улучшилась, особенно рендеринг шрифтов WPF: blogs.msdn.com/b/text/archive/2009/08/24/…
Judah Gabriel Himango 14.11.2012 04:30:38

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

-3
27.08.2008 19:31:41
Если сделать прямое сравнение между двумя одинаковыми фрагментами текста и не смог найти никакой разницы в настройке SnapsToDevicePixel. Кроме того, судя по техническим причинам «размытости», я не представляю, как это могло бы помочь.
David Schmitt 10.10.2008 08:51:14

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

1
10.11.2008 11:32:48

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

Это похоже на рисунок Quarts на Mac.

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

0
4.10.2009 01:46:19

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

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

1
23.06.2011 01:32:58

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

TextOptions.TextFormattingMode="Display"
9
14.04.2013 14:33:54
То есть на самом деле не сглаживание отключено. Это другая, более понятная версия настройки сглаживания. Параметр «Псевдоним» - TextOptions.TextRenderingMode = «Псевдоним»
Koert van Kleef 4.07.2014 13:35:00