gpt4 book ai didi

wpf - TextOptions.TextFormattingMode 影响具有粗体字重的文本

转载 作者:行者123 更新时间:2023-12-04 21:35:53 32 4
gpt4 key购买 nike

I've had a problem使某些文本的字体粗体粗体使其小于普通字体加权文本。我发现这是因为我将 TextFormattingMode 设置为“Display”;如果 TextFormattingMode 设置为“理想”,则不会出现此问题。

例如,下面的代码:

 <Label FontFamily="Calibri" FontSize="12" FontWeight="Bold" Content="This is some test text" TextOptions.TextFormattingMode="Ideal"/>
<Label FontFamily="Calibri" FontSize="12" Content="This is some test text" TextOptions.TextFormattingMode="Ideal"/>
<Label></Label>
<Label FontFamily="Calibri" FontSize="12" FontWeight="Bold" Content="This is some test text" TextOptions.TextFormattingMode="Display"/>
<Label FontFamily="Calibri" FontSize="12" Content="This is some test text" TextOptions.TextFormattingMode="Display"/>

产生以下内容:

Results of XAML when running

如果我将最后两个标签的字体大小提高到 14 左右,则粗体文本会比正常的加权文本大。

我的问题是:我可以使用一个设置来设置 12 点粗体文本,并将 TextFormattingMode 设置为“显示”,它的大小与正常加权文本相同/略大?

最佳答案

问题不在于粗体文本太短,而在于普通文本太长。

这背后有历史,WPF 最初在 .NET 3.0 中发布,仅支持缩放文本的“理想”模式。此模式支持真正分辨率无关的文本缩放,在具有不同每英寸点数分辨率的各种显示设备上,一行文本将具有可预测的长度(以英寸为单位)。这没有得到很好的接受,它引起了 WPF 程序员的大量提示,他们不喜欢这样产生的模糊文本。这在您的屏幕截图中可见。请注意粗体字母 m 的左词干在理想模式下太胖,但在显示模式下却不是。

在 .NET 4.0 中,WPF 团队支持一种新的文本呈现方式,称为“显示”。它以 GDI 的方式呈现文本,应用字体提示规则来调整字母形状,使其与显示器的像素网格更好地重合。这往往会拉伸(stretch)字母,尤其是当它们的词干只有一个像素时。点大小越小,这种情况就越明显。文本因此具有很高的可读性,但会丢失真正的分辨率无关渲染。

Winforms 也经历了类似的演变,从 Graphics.DrawString() 到 TextRenderer.DrawText()。

这个blog post来自 WPF 团队的详细信息。

因此,您的问题的答案是否定的。

关于wpf - TextOptions.TextFormattingMode 影响具有粗体字重的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13140431/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com