0

我不明白。我快疯了 - 无论我做什么,我的 WPF 应用程序中的文本都是模糊的。好吧,其中一些 - 文本元素之一是焦点,关闭/最小化按钮也是如此。我已将TextOptions.TextRenderingMode="ClearType"andTextOptions.TextFormattingMode="Display"直接应用于元素,我还尝试将其应用于MainWindow.xaml默认情况下使用 ModernUI for WPF 框架创建的 。

我要疯了——我发现的所有文献都说这是固定的,但我仍在处理这个问题。(我已将字体更改为 Calibri/Consolas 并且还使用了大小和重量 - 仍然模糊。)

我怎样才能解决这个问题?

编辑:如果我使用具有标准 DPI 设置的工作显示器(分辨率 1920x1200),我不太确定我是否有问题。在我使用的笔记本电脑显示器上,我的分辨率非常高(2880x1620),文本缩放设置为更大。在这个显示器上,我目前看到的文字“不清晰”。我还应该注意,在设计器中,文本看起来很好。当应用程序运行时,文本看起来很糟糕。

模糊文本的示例。

4

3 回答 3

1

所以,我发现我的问题专门与现代 UI 框架有关。我不确定为什么。我改用 MahApps.Metro,字体清晰度没有问题。

于 2015-04-08T15:55:50.607 回答
0

首先你可以试试

<TextBlock Text="Am I Still Blurry." RenderOptions.ClearTypeHint="Enabled"/>

你可能想看看这篇文章以获得更清晰的理解

于 2015-04-08T15:08:17.027 回答
0

这是设计使然。那些不同的控件集,它们具有不同样式的字体颜色。对于窗口右上角的示例设置和帮助,他们使用下面定义的 SystemButtonLink 样式

<Style x:Key="SystemButtonLink" TargetType="ButtonBase" BasedOn="{StaticResource SystemButtonBase}" >
    <Setter Property="Foreground" Value="{DynamicResource LinkButtonText}"/>
    <Setter Property="Width" Value="NaN" />
    <Setter Property="Height" Value="NaN" />
    <Setter Property="FontFamily" Value="Segoe UI" />
    <Setter Property="FontSize" Value="11" />
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="{x:Type ButtonBase}">
                <Border Name="Chrome"
                            Background="{TemplateBinding Background}"
                            BorderThickness="{TemplateBinding BorderThickness}"
                            BorderBrush="{TemplateBinding BorderBrush}"
                            SnapsToDevicePixels="true">
                    <TextBlock DataContext="{TemplateBinding Content}"
                               Text="{Binding Converter={StaticResource ToUpperConverter}}"
                               Margin="{TemplateBinding Padding}"
                               VerticalAlignment="{TemplateBinding VerticalContentAlignment}"
                               HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
                               SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"/>
                </Border>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
    <Style.Triggers>
        <Trigger Property="IsMouseOver" Value="True">
            <Setter Property="Foreground" Value="{DynamicResource LinkButtonTextHover}"/>
        </Trigger>
        <Trigger Property="IsPressed" Value="True">
            <Setter Property="Foreground" Value="{DynamicResource LinkButtonTextPressed}" />
        </Trigger>
        <Trigger Property="IsEnabled" Value="false">
            <Setter Property="Foreground" Value="{DynamicResource LinkButtonTextDisabled}" />
        </Trigger>
    </Style.Triggers>
</Style>

如果您参考鼠标悬停样式中使用的三种颜色,Pressed 和 IsEnabled。更多代码可以参考网站。https://mui.codeplex.com/SourceControl/latest

于 2015-04-08T15:22:14.127 回答