WPF文本呈现问题

WPF文本呈现问题,wpf,text,rendering,Wpf,Text,Rendering,我创建了一个类似于TabControl的自定义控件。它工作得很好,只是当我调整内容大小时,标题项中的文本变得模糊。例如,它可以如下所示: 不仅文本,而且文本周围的框也可以是非垂直的。请参见“常规”项周围的蓝色边框: 是什么导致了这个问题?我已将SnapToDevicePixels设置为True。 谢谢你的建议 编辑: 我正在使用.NET4.0。TextOptions.TextFormattingMode设置为“显示” 如果在显示按钮的ItemsControl样式中应用DropShadowEf

我创建了一个类似于TabControl的自定义控件。它工作得很好,只是当我调整内容大小时,标题项中的文本变得模糊。例如,它可以如下所示:

不仅文本,而且文本周围的框也可以是非垂直的。请参见“常规”项周围的蓝色边框:

是什么导致了这个问题?我已将SnapToDevicePixels设置为True。 谢谢你的建议

编辑


我正在使用.NET4.0。TextOptions.TextFormattingMode设置为“显示”

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

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


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

有两件事需要考虑:

  • 您使用的是.NET3.5还是.NET4.0?我问这个问题的原因是文本呈现在两个版本之间发生了变化。在4.0中,它要好得多
  • 有时,你必须等待一段时间,直到文本变得更清晰,所以你滚动,然后在一秒钟后文本变得更清晰。这也可能是你的问题的一个原因

我怀疑你自己也说过:
SnapToDevicePixels
如果你调整了文本的大小,使其跨像素显示,就会破坏文本渲染。您可能希望在边框/背景上保留
SnapToDevicePixels=“True”
,但对于文本元素则将其关闭


至于你的边界。。。你能发布xaml吗?我猜您不是只使用一个带圆角的元素-您是否将该选项卡的边缘绘制为三条单独的线?

我使用的是.NET 4.0。TextOptions.TextFormattingMode设置为“显示”,等待文本变得更清晰不是这里的问题。无论我等待多长时间,它都保持不变。我将SnapToDevicePixels更改为false,仍然得到相同的结果。所有内容的xaml都非常大,所以我认为发布它是没有意义的。蓝色按钮的类型为ToggleButton,按钮的内容有几个边框:正如我在编辑的问题中提到的,只有当我将“效果”属性设置为DropShadowEffect时,整个问题才会发生。如果没有这种效果,渲染就不会有问题。我在这里遇到了完全相同的问题。它仅在使用DropShadowEffect和TextFormattingMode=Display时发生。删除其中一个可以修复问题,但要么它没有阴影,要么文本看起来像.NET4之前一样模糊。这真让人讨厌。如果您找到了解决方案,请告诉我们!你找到解决办法了吗?没有。问题是,这种异常现象只发生在一些计算机上,而不是在任何地方。我在一个项目上没有问题,而在另一个项目上,文本非常模糊。相同的计算机,相同的VS,相同的.net,所以它不是特定于计算机的