【问题标题】:Why is some of the text in my WPF 4.5 application still blurry?为什么我的 WPF 4.5 应用程序中的某些文本仍然模糊?
【发布时间】:2015-06-13 14:51:05
【问题描述】:

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

我快疯了 - 我找到的所有文献都说这已经解决了,但我仍在处理这个问题。 (我已将字体更改为 Calibri/Consolas 并且还使用了大小和重量 - 仍然模糊。)

我该如何解决这个问题?

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

【问题讨论】:

  • 模糊是什么意思?这是我们在这里谈论的不同颜色还是实际文本本身是模糊的?
  • 不,实际的文字本身是模糊的。即使是其他页面上的黑色文本仍然显得模糊且不清晰
  • 这有很多原因,从脏屏幕到抑制图形引擎。你是随机看到的吗?像某些文字有时会模糊,有时不会?
  • 好吧,我相信如果我使用工作中的显示器(分辨率 1920x1200)和标准 DPI 设置,我不太确定我是否有问题。在我使用的笔记本电脑显示器上,我的分辨率非常高(2880x1620),文本缩放设置为更大。

标签: wpf user-interface modern-ui wpf-4.5


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    你可以先试试

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

    您可能想看看这个post 以获得更清晰的理解

    【讨论】:

    • 这个我也试过了,但是没有效果。我对我的帖子进行了编辑,以进一步阐明我正在使用的显示以及文本在设计器中的显示效果。
    • 我也遇到过这个问题,但不一致..后来和图形引擎有关..你的一致吗?
    【解决方案3】:

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

    【讨论】:

      猜你喜欢
      • 2011-02-06
      • 2014-11-15
      • 2018-07-22
      • 2015-01-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-05
      • 1970-01-01
      相关资源
      最近更新 更多