【发布时间】:2013-01-20 01:23:41
【问题描述】:
有人批评我的一个应用程序。显示的文本被认为是模糊的。我稍微放大了窗口并得到了这个结果(所以他们是对的)
源于我在此简化示例中的尝试:
<Window x:Class="WpfApplication1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Grid>
<StackPanel>
<TextBlock Text="StatusDTC [1]"></TextBlock>
<TextBlock Text="StatusDTC [2]"
RenderOptions.BitmapScalingMode="NearestNeighbor"
RenderOptions.EdgeMode="Aliased"></TextBlock>
<TextBlock Text="StatusDTC [3]"
SnapsToDevicePixels="True"></TextBlock>
<TextBlock Text="StatusDTC [4]"
SnapsToDevicePixels="True"
RenderOptions.BitmapScalingMode="NearestNeighbor"
RenderOptions.EdgeMode="Aliased"></TextBlock>
</StackPanel>
</Grid>
</Window>
我发现了类似的东西here。但 UseLayoutRounding 似乎不适用于 .Net 3.5。我用谷歌搜索了一下,发现 .Net 4 (TextOptions.TextRenderingMode) 有改进,解决了这个问题,但不能选择使用这个应用程序切换到 .Net 4。
据我所知,Win7 呈现 WPF 与 XP 不同,我还启动了一个虚拟 XP 并在那里进行了尝试。结果是一样的。
有人想在 .Net 3.5 中清晰化文本吗?
【问题讨论】:
-
另见这篇文章:stackoverflow.com/questions/190344/…(主要是 4.0)