Вопрос

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

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

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

Спасибо

Это было полезно?

Решение

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

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

Другие советы

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

TextOptions.TextFormattingMode="Display"

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

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

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

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top