我在VS2013中使用WPF技术编写了一个应用程序。
当我运行程序时,阴影文本的文本质量低于我在Visual Studio中使用设计模式看到的文本质量。
以下是图片中发生的事情:
当发生这种情况时,界面中的用户很难阅读较小的波斯文或英文字符(7,8,9 px文本大小)。
为什么在调试模式下这似乎更好,并且如何在最终应用程序中获得相同的质量?
答案 0 :(得分:1)
由于WPF在格式化文本时使用的文本指标,因此会出现渲染模糊。
TextOptions.TextFormattingMode
是您的解决方案,这将指示TextFormatter布置文本时要使用的字体指标。
所以在文本元素上设置此附加属性以启用相同的
例如
<TextBlock Text="Test" TextOptions.TextFormattingMode="Display" />
通过将值设置为Display
,您将收到使用最佳GDI兼容字体指标呈现的字体,且模糊程度最小
除了上述之外,您还可以使用会影响非文本元素呈现的RenderOptions.EdgeMode
RenderOptions.BitmapScalingMode
也可以帮助您在缩放等时防止模糊。
例如
<Grid RenderOptions.EdgeMode="Aliased" RenderOptions.BitmapScalingMode="NearestNeighbor">
<Border BorderBrush="Black" BorderThickness="1">
<TextBlock Text="Test" TextOptions.TextFormattingMode="Display"/>
</Border>
</Grid>
结合上述内容,您可以确保最清晰的UI渲染
你似乎也在使用投影,所以可能在投影中包含RenderingBias="Quality"
以提高阴影质量
<TextBlock Text="Test" TextOptions.TextFormattingMode="Display">
<TextBlock.Effect>
<DropShadowEffect RenderingBias="Quality"/>
</TextBlock.Effect>
</TextBlock>
更多信息