如何使文本/标签光滑?

6

有人知道如何使标签或文本更加平滑吗?目前它们看起来相当锯齿状。由于我想让标签具有动态性,所以不能只从Photoshop中插入文本。


你能给我们一张图片吗?你启用了ClearType吗? - Ron Warholic
这是一个标签的图像。你看它看起来相当锯齿和粗糙吗? - Joey Morani
4个回答

19
如果你想要反锯齿文本,就必须动态生成代表你的文本的图片。这里有一个在 msdn 上的例子:http://msdn.microsoft.com/en-us/library/a619zh6z.aspx 编辑:根据下面的评论进行编辑。
该链接描述了如何使用控件的 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(或其他你想要的名称)的新自定义控件,并使用上面的代码。重新构建项目,然后你应该会在工具箱顶部的"MyProject Components"类别下看到CustomLabel控件。在这个自定义标签的属性窗格中,你会看到新的TextRenderingHint属性。将其设置为"AntiAlias"。在表单中添加另一个标签并比较它们的外观。

如果你想将其默认设置为AntiAlias,只需更改私有变量的默认值即可。


哦,抱歉。我刚才因为有人踩了它而忽略了你的想法。我应该怎么使用这个?每次尝试编译时都会出现错误。 - Joey Morani
1
该链接重写了OnPaint方法,将TextRenderingHint设置为AntiAlias。请参见我上面的编辑,了解如何以可重用的方式使用它。 - zincorp
非常感谢!它运行得很好。它已经从这样的外观“d-load.org/Capture.PNG”变成了像这样的外观“d-load.org/Capture2.PNG”,就像你的例子一样。不知道为什么有人会给你投反对票...再次感谢! - Joey Morani

5
您是在指ClearType吗?那么在Windows中必须启用ClearType,并且您必须使用现代字体,例如Tahoma或Segoe UI,而不是MS Sans Serif。 更新 您发布了一个问题的示例。我将其放大到400%。显然启用了ClearType子像素抗锯齿。个人认为文本看起来不会很锯齿。如果您想在屏幕上获得更高质量的文本,可以购买具有更高物理分辨率(每英寸像素数)的屏幕,然后以(相应)较大的尺寸绘制文本。然后,文本在您的屏幕上将具有相同的大小,但看起来会更加平滑。
您还可以放弃ClearType并使用其他字体平滑算法,但这并不容易,因为ClearType是Windows上的字体平滑系统更新2

如果您正在使用Windows 7,您可以微调ClearType。只需打开开始菜单,输入“ClearType”并启动向导。我认为Vista和XP也有指南,但可能不是默认安装的,而是作为PowerToys或类似物提供...


已启用。我尝试了Tahoma和Segoe UI,但它仍然看起来很锯齿。 - Joey Morani
好的,谢谢。只是其他程序没有锯齿状的文本,在我的当前 ClearType 设置下。我会更改 ClearType 的设置,看看是否有所改善。再次感谢。 - Joey Morani
他启用了ClearType。问题在于,对于大字体,ClearType看起来很糟糕。为什么?因为它试图使所有东西都变得锐利,而这种锐利度在24pt以上的字体上看起来像是走样。 - Camilo Martin

0

0

安装 MacType 程序,它可以使你的 Windows 字体像 MacOS 一样平滑,我不知道为什么微软不修复其 Windows 平滑字体?如果微软修复了它的字体,我就不需要安装第三方应用程序来做这样的基本事情了。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接