C# 如何使文本/标签平滑?

C# 如何使文本/标签平滑?,c#,winforms,text,label,smoothing,C#,Winforms,Text,Label,Smoothing,有人知道如何使标签或文本更平滑吗?目前,它们看起来参差不齐。因为我想使标签动态化,我不能仅仅插入Photoshop中的文本。你指的是ClearType吗?然后必须在Windows中启用,并且必须使用现代字体,如Tahoma或Segoe UI,而不是MS Sans Serif 更新 你把这个问题的答案贴出来了。我显然,ClearType亚像素抗锯齿已启用。就我个人而言,我不认为文本看起来参差不齐。如果你想要更高质量的屏幕文本,你可以买一个物理分辨率(每英寸像素数)更高的屏幕,然后以(相应的)更大的

有人知道如何使标签或文本更平滑吗?目前,它们看起来参差不齐。因为我想使标签动态化,我不能仅仅插入Photoshop中的文本。

你指的是ClearType吗?然后必须在Windows中启用,并且必须使用现代字体,如Tahoma或Segoe UI,而不是MS Sans Serif

更新

你把这个问题的答案贴出来了。我显然,ClearType亚像素抗锯齿已启用。就我个人而言,我不认为文本看起来参差不齐。如果你想要更高质量的屏幕文本,你可以买一个物理分辨率(每英寸像素数)更高的屏幕,然后以(相应的)更大的尺寸绘制文本。然后,文本在屏幕上的大小将相同,但看起来更加平滑

您也可以放弃ClearType,使用其他字体平滑算法,但这绝非小事,因为ClearType是Windows上的字体平滑系统

更新2


如果您运行的是Windows 7,则可以微调ClearType。只需打开“开始”菜单,写上“ClearType”,然后启动指南。我认为Vista和XP也有一些指南,但默认情况下可能没有安装,但可以作为PowerToys或类似的工具使用。

请确保您已启用。

如果您想对文本进行反别名,您必须动态生成代表文本的图像。以下是msdn的一个示例:

编辑:根据下面的评论进行编辑。

该链接描述如何使用控件的OnPaint事件使用不同的TextRenderingHint。如果您想要更具可重用性的东西,您可以创建一个扩展Label类的自定义Label类,并在表单中使用它:

public partial class CustomLabel : Label
{
    private TextRenderingHint _hint = TextRenderingHint.SystemDefault;   
    public TextRenderingHint TextRenderingHint
    {
        get { return this._hint; }
        set { this._hint = value; }
    }        

    protected override void OnPaint(PaintEventArgs pe)
    {            
        pe.Graphics.TextRenderingHint = TextRenderingHint;
        base.OnPaint(pe);
    }
}
添加一个名为CustomLabel的新自定义控件(或任何您想调用的控件),并使用上面的代码。重建项目后,您应该会看到CustomLabel控件出现在工具箱顶部的“MyProject Components”类别下。在该自定义标签的属性窗格中,您将看到新的TextRenderingHint属性。将其设置为“AntiAlias”。在表单中添加另一个标签,并比较它们的外观


如果要将其默认为AntiAlias,只需更改私有变量的默认值。

安装MacType程序,它会像MacOS一样平滑Windows字体,我不知道Microsoft为什么不修复其Windows平滑字体?
如果微软修复了它的字体,我就不需要安装第三方应用程序,比如Windows的基本功能。

你能给我们一张图片吗?您是否启用了ClearType?这是一个标签的图像。看到它看起来有多粗糙了吗?已经启用了。我用Tahoma和Segoe UI试过了,但看起来还是很粗糙。好的,谢谢。只是其他程序没有锯齿状的文本,我的当前设置是ClearType。我将更改ClearType上的设置,看看它是否能使它变得更好。再次感谢。他启用了ClearType。问题是大字体的cleartype看起来很糟糕。为什么?因为它试图使所有的东西都清晰,而且这种清晰看起来像是24+pt字体上的别名。哦,对不起。我只是驳回了你的想法,因为有人否决了它。我该如何使用这个?当我试图编译它时,我不断地得到错误。该链接覆盖OnPaint方法,将TextRenderingHint设置为AntiAlias。请参阅我上面的编辑,了解如何以可重用的方式使用它。非常感谢!它工作得很好。它从看起来像“d-load.org/Capture.PNG”变成了“d-load.org/Capture2.PNG”,就像你的例子一样。不知道为什么有人否决了你。。。再次感谢!