Проблема с отображением текста в WPF - PullRequest
2 голосов
/ 21 марта 2011

Я создал пользовательский элемент управления, похожий на TabControl. Это работает хорошо, за исключением того, что текст в элементах заголовка становится размытым, когда я изменяю размер содержимого. Например, это может выглядеть так:

enter image description here

Не только текст, но и рамка вокруг текста также может становиться не вертикальной. См. Синюю рамку вокруг элемента «Общие»:

enter image description here

Что вызывает эту проблему? Я установил SnapToDevicePixels = True. Спасибо за любые идеи!

РЕДАКТИРОВАТЬ :

Я использую .NET 4.0. TextOptions.TextFormattingMode имеет значение «Показать».

Вся проблема с размытым текстом и фоном возникает, если я применяю эффект DropShadowEffect в стиле ItemsControl, который отображает кнопки. Это код для эффекта:

<Setter Property="Effect">
    <Setter.Value>
        <DropShadowEffect Direction="0" ShadowDepth="1" BlurRadius="10" Opacity="0.2" Color="Black" />
    </Setter.Value>
</Setter>

Если этот код не активирован, текст и границы отображаются хорошо.

Ответы [ 2 ]

1 голос
/ 21 марта 2011

Я подозреваю, что вы сказали это сами: SnapToDevicePixels нарушит рендеринг текста, если вы изменили размер текста, чтобы он отображался в пикселях.Вы, вероятно, хотите оставить SnapToDevicePixels="True" на своих границах / фонах, но отключите его для текстовых элементов.

Что касается вашей границы ... можете ли вы опубликовать xaml?Я предполагаю, что вы не используете только один элемент со скругленными углами - вы рисуете край этой вкладки в виде трех отдельных линий?

0 голосов
/ 21 марта 2011

Есть две вещи, которые следует учитывать:

  • используете ли вы .NET 3.5 или .NET 4.0?причина, по которой я спрашиваю, заключается в том, что рендеринг текста был изменен между версиями.В 4.0 это намного лучше.
  • Иногда вам нужно немного подождать, пока текст не станет более резким, поэтому вы прокручиваете его, а затем через секунду текст становится острее.Это также может быть причиной вашей проблемы.
...