WPF4文字模糊不清晰、边框线条粗细不一致的解决方法

简介: 原文:WPF4文字模糊不清晰、边框线条粗细不一致的解决方法软件测试过程中发现在一台1600*900的分辨率电脑上文字模糊,甚至某些个文字出现压缩扭曲 经过实践,发现按下面方法能解决一点问题: 在窗口或控件上设置字体属性就可以了(红色标注部分),如下:  注:TextOptions.
原文: WPF4文字模糊不清晰、边框线条粗细不一致的解决方法

软件测试过程中发现在一台1600*900的分辨率电脑上文字模糊,甚至某些个文字出现压缩扭曲

经过实践,发现按下面方法能解决一点问题:

在窗口或控件上设置字体属性就可以了(红色标注部分),如下:

<UserControl x:Class="..."
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
             xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
             mc:Ignorable="d" 
             d:DesignHeight="400" d:DesignWidth="800"
             FontFamily="NSimSun"  FontSize="14" TextOptions.TextFormattingMode="Display" TextOptions.TextRenderingMode="ClearType" TextOptions.TextHintingMode="Fixed" UseLayoutRounding="True">

 注:TextOptions.TextHintingMode="Fixed"  UseLayoutRounding="True"  必须加在窗口或控件上,否则写在样式里无效

主要属性的意义:

1.TextFormattingMode

它提供了两种设置:

· Ideal  —— WPF4之前的模式

· Display —— 新的模式,可以使字体显示更清晰

(一般将TextFormattingMode设置为Display,可以提高字体显示的清晰度)

 

2.TextRenderingMode

设置渲染模式,可以有以下设置:

Auto – This mode will use ClearType unless system settings have been set to specifically disable ClearType on the machine.

Aliased – No antialiasing will be used to draw text.

Grayscale – Grayscale antialiasing will be used to draw text.

ClearType – ClearType antialising will be used to draw text.

(一般用ClearType渲染出来的字体会比较平滑)

 

3.TextHintingMode

获取或设置一个值,该值影响文本元素的呈现行为,这是一种性能优化方式,当您对文本元素的任何文本属性进行动画处理时,可以使用此方式。

此属性的值采用以下两种可能的值:

Animated 通过使用一个更高效、但视觉精确下降的平滑算法来针对动画进行优化。(文本仍然是可读的;精度损失并不严重。)

Fixed(默认值)使用的算法针对视觉上精确的字体平滑效果进行了优化,但当将动画应用于字体元素的属性时,可能导致性能问题以及抖动,尤其是对于 FontSize 或转换/定位/投影。

(在需要对字体做一些动态效果,例如将字体缩放时,使用Animated能获取较高的性能,但同时也影响了其显示的清晰度)

 

4.UseLayoutRounding

获取或设置一个值,该值确定对象及其可视化子树的呈现是否应使用将呈现与整像素对齐的舍入行为。UserLayoutRounding为False,导致控件布局相对屏幕若不是整数则不会四舍五入,导致边缘模糊。

 

最后:如果把‘宋体’、‘黑体’、‘微软雅黑’这类字体设置成Times New Roman等英文字体,清晰度倒是明显提升了。(亲测有效)

目录
相关文章
|
算法 Windows
Winform控件优化之实现无锯齿的圆角窗体(或任意图形的无锯齿丝滑的窗体或控件)【借助LayeredWindow】
在一般能搜到的所有实现圆角窗体的示例中,都有着惨不忍睹的锯齿...而借助于Layered Windows,是可以实现丝滑无锯齿效果的Form窗体的,其具体原理就是分层窗体....
992 0
Winform控件优化之实现无锯齿的圆角窗体(或任意图形的无锯齿丝滑的窗体或控件)【借助LayeredWindow】
|
索引
echarts x轴文字显示不全(xAxis文字倾斜比较全面的3种做法值得推荐)
echarts x轴标签文字过多导致显示不全 如图: 解决办法1:xAxis.axisLabel 属性 axisLabel的类型是object ,主要作用是:坐标轴刻度标签的相关设置。(当然yAxis也是一样有这个属性的) ...
4013 0
Markdown设置字体大小、颜色...,CSDN博客编写设置字体大小、颜色、粗细。字体,文字背景设置。
Markdown设置字体大小、颜色...,CSDN博客编写设置字体大小、颜色、粗细。字体,文字背景设置。
584 0
Markdown设置字体大小、颜色...,CSDN博客编写设置字体大小、颜色、粗细。字体,文字背景设置。
|
C#
WPF模糊和阴影效果
<Button Content="Button" HorizontalAlignment="Left" Margin="31,234,0,0" VerticalAlignment="Top" Width="75" RenderTransformOrigin="-0.
1483 0
|
前端开发
如何用纯 CSS 创作小球变矩形背景的按钮悬停效果
效果预览 在线演示 按下右侧的“点击预览”按钮可以在当前页面预览,点击链接可以全屏预览。 https://codepen.io/comehope/pen/yxbEzJ 可交互视频 此视频是可以交互的,你可以随时暂停视频,编辑视频中的代码。
1096 0
|
C#
WPF文字描边的解决方法(二)——支持文字竖排和字符间距调整
原文:WPF文字描边的解决方法(二)——支持文字竖排和字符间距调整 自前天格式化文本效果出来后,今天又添加文本竖排和调整字符间距的功能。
1642 0
|
测试技术 C# Windows
WPF文字描边的解决方法
原文:WPF文字描边的解决方法  由于项目原因,今天研究了一下午WPF的文字描边,网上这方面的资料奇少,搞了半天才发现强大的WPF原来不直接支持文字描边啊。
1483 0
|
C#
WPF下字体模糊的问题
原文:WPF下字体模糊的问题 一直以来,发现WPF中的小字体下的文字变得比较模糊,比如: WPF与Winform字体显示比较: 为了看到更清楚,我们放大点显示:  放得更大些: 中文、日文等亚洲文字的显示也存在着类似的问题:在XP操作系统中的效果:(Winform中)Vista下日文的显示效果:(WPF中) 放大点:XP中:Vista中: 很显示,WPF中变得模糊了。
1324 0
|
C#
WPF图形/文字特别效果之一:交叉效果探讨
原文:WPF图形/文字特别效果之一:交叉效果探讨 为了说明问题,先看下图:图1  完全重叠的单一颜色文字它是2008几个字的叠加,并且颜色为单一的红色。
761 0
|
C#
WPF图形/文字特别效果之一:交叉效果探讨(续)
原文:WPF图形/文字特别效果之一:交叉效果探讨(续) 在“WPF图形/文字特别效果之一:交叉效果探讨”(http://blog.csdn.net/johnsuna/archive/2008/05/08/2419404.aspx)一文中,我使用了根据笔画顺序书写及顺时针/逆时针的方式来对交叉块进行分类描述,籍以探讨如何给各交叉色块填充颜色。
937 0