WPF文本呈现问题

时间:2011-03-21 08:25:02

标签: wpf text rendering

我创建了一个类似于TabControl的自定义控件。它工作得很好,除了当我调整内容大小时标题项中的文本变得blury。例如,它可以像这样:

enter image description here

不仅文字,文字周围的框也可以非垂直。查看“常规”项目周围的蓝色边框:

enter image description here

是什么导致了这个问题?我设置了SnapToDevicePixels = True。 谢谢你的任何想法!

编辑

我正在使用.NET 4.0。 TextOptions.TextFormattingMode设置为“Display”。

如果我在显示按钮的ItemsControl的样式中应用DropShadowEffect效果,则会出现模糊文本和背景的整个问题。这是效果的代码:

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

如果未启用此代码,则会很好地显示文本和边框。

2 个答案:

答案 0 :(得分:1)

我怀疑你自己说过:SnapToDevicePixels如果你调整了文本的大小,会破坏文字渲染,使其显示在像素之间。您可能希望在边框/背景上保留SnapToDevicePixels="True",但为文本元素关闭它。

至于你的边界......你可以发布xaml吗?我猜你不是只使用带圆角的单个元素 - 你是否将该标签的边缘绘制成三条独立的线条?

答案 1 :(得分:0)

有两件事需要考虑:

  • 您使用的是.NET 3.5或.NET 4.0吗?我之所以要问的是文本呈现在版本之间已经改变了。在4.0中,它好多了。
  • 有时你需要等待一段时间,直到文字变得更清晰,所以你滚动,然后一秒钟后文字变得更清晰。这也可能是你问题的原因。