Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
WPF字体质量_Wpf_Fonts_Font Size - Fatal编程技术网

WPF字体质量

WPF字体质量,wpf,fonts,font-size,Wpf,Fonts,Font Size,我正在开发一个WPF应用程序,但我注意到,在某些字体大小下,文本的渲染效果不如您在“控制面板->字体”中看到的示例好。我使用的是较大的Segoe UI字体(FontSize=“36”),其效果在竖直的线条上更为明显,例如字母“U”的一面可能比另一面稍厚。 ) 在某些字体大小下,字体质量会提高,例如FontSize=“48”(我认为这相当于36pt),但使用有限的字体大小并不总是可行的 我可以通过对TextBlock应用以下属性来提高字体质量:- TextOptions.TextFormattin

我正在开发一个WPF应用程序,但我注意到,在某些字体大小下,文本的渲染效果不如您在“控制面板->字体”中看到的示例好。我使用的是较大的Segoe UI字体(
FontSize=“36”
),其效果在竖直的线条上更为明显,例如字母“U”的一面可能比另一面稍厚。 )

在某些字体大小下,字体质量会提高,例如
FontSize=“48”
(我认为这相当于36pt),但使用有限的字体大小并不总是可行的

我可以通过对TextBlock应用以下属性来提高字体质量:-

TextOptions.TextFormattingMode="Display" TextOptions.TextRenderingMode="ClearType"
考虑到质量的提高,我很想知道为什么WPF不能对所有文本都这样做,还是因为性能的原因?我在考虑创建一个全局样式,将其应用于所有控件,或者这会导致问题吗

(我尝试上传一个屏幕截图,但必须以低质量存储图像,你无法真正了解字体问题)。

以下是WPF文本团队编写的关于此功能的示例

文本格式化模式的注意事项

理想理想文本度量是用于 自WPF引入以来的文本格式。这些指标导致 字形的形状保持其轮廓的高保真度 字体文件。在以下情况下,不考虑图示符的最终位置: 创建字形位图或相对于每个位图定位字形 其他的

显示在这种新的格式化模式下,WPF使用GDI 兼容的文本度量。这确保每个图示符的宽度为 多个整像素,并定位在整像素上。使用 GDI兼容的文本度量还意味着字形大小和线条 breaking类似于基于GDI的框架。也就是说,字形大小 不是WPF使用的断线算法的唯一输入。 即使我们使用与GDI相同的度量,我们的断线也不会 完全一样

由于这些属性在.NET4.0中是新的,所以它们保留了原始WPF算法作为默认值,这是理想模式

对于
textrendingmode

自动除非系统设置已更改,否则此模式将使用ClearType 设置为在机器上专门禁用ClearType

锯齿不会使用抗锯齿来绘制文本

灰度灰度抗锯齿将用于绘制 文本

ClearTypeClearType反序列化将用于绘制文本

由于默认设置为
Auto
,因此通常会得到
ClearType
渲染


现在,由于这些是附加属性,并且它们继承,因此您可以在根
窗口中设置它们。无需创建大量的
样式。

当ClearType打开时,我注意到在处理大量数据(超过10000项)时会出现一些小的性能问题。将TextFormattingMode更改为Display不会对性能产生明显影响


这就是说,在我所有的WPF应用程序中,我都使用全局样式来改进文本呈现,除非性能影响大到足以让UI感觉黏性。

我们(imgur)不会以低质量存储图像。如果保存PNG并上传,它不会变成JPEG。您还可以从此处的缩小图像链接到全尺寸图像。您是否使用其他字体尝试过此操作?我相信,修改这些属性是否会对性能产生任何影响(可能是由于更复杂的算法)中充分回答了这个问题,包括为什么默认WPF字体呈现为“模糊”的问题?另外,我想知道修改这些属性是否还有其他缺点或缺点。WPF团队中没有人提到过使用不同渲染模式的性能影响,所以我想说,如果存在性能损失,那么可以忽略不计。至于缺点,我认为主要是ClearType。例如,它在CRT显示器上工作不好。