gpt4 book ai didi

c# - 是否可以将 TextRenderingHint 设置为用于整个应用程序?

转载 作者:行者123 更新时间:2023-11-30 17:23:24 26 4
gpt4 key购买 nike

我想在 C# 应用程序中使用抗锯齿字体。我读过here如何处理每个表单的 Paint 事件:

public class SmoothingFonts : System.Windows.Forms.Form
{
...

private void InitializeComponent()
{
...

this.Paint += this.SmoothingFonts_Paint;
}

private void SmoothingFonts_Paint(object sender, System.Windows.Forms.PaintEventArgs e)
{
Font TextFont = new Font("Verdana", 25, FontStyle.Italic);
e.Graphics.TextRenderingHint = TextRenderingHint.ClearTypeGridFit;
e.Graphics.DrawString("Sample Text", TextFont, Brushes.Black, 20, 150);
}
}

这可能会变得很麻烦,因为我们已经完成了很多表格。此外,在每种形式中,我们都使用多种形式类型。 TextRenderingHint 的设置可以全局设置吗?


编辑 1

引用的示例,尽管它已过时,正如 nobugz 所正确指出的那样, 帮助我意识到要在该系统中使用的最佳 TextRenderingHintAntiAliasGridFit。硬件平台是封闭的,所以我可以保证这个系统的最佳配置将是将部署应用程序的所有系统的最佳配置。

我可以在任何地方设置 TextRenderingHint 的默认设置吗?我在 Windows Embedded Standard(以前的 Windows XP Embedded)镜像中运行应用程序。


编辑 2

我发现在XP系统中可以设置注册表默认使用的TextRenderingHint类型。它不是应用程序方法,而是用户方法。注册表项是:

HKCU\Control Panel\Desktop\FontSmoothing      {2 for activating font smoothing}
HKCU\Control Panel\Desktop\FontSmoothingType {1 for Antialiasing, 2 for ClearType}

感谢支持!

最佳答案

您链接的文章既不相关又过时。 ClearTypeGridFit 已经是启用了 ClearType 的机器上的默认抗锯齿绘图模式。并且您应该使用 TextRenderer 类进行文本渲染,Graphics.DrawString() 有问题。

您可以使用 SysInternals 的 ZoomIt 实用程序仔细检查您是否获得了 ClearType 抗锯齿功能。放大时,您应该能够看到沿着字体轮廓绘制的淡红色和淡蓝色条纹。

关于c# - 是否可以将 TextRenderingHint 设置为用于整个应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2236371/

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