有谁知道如何使标签或文本更平滑?此刻,他们看上去参差不齐。当我想使标签动态化时,我不能只插入Photoshop中的文本。

最佳答案

如果要消除锯齿,则必须动态生成代表文本的图像。这是有关msdn的示例:http://msdn.microsoft.com/en-us/library/a619zh6z.aspx

编辑:在下面按评论进行编辑。

该链接描述了如何使用控件的OnPaint事件来使用其他TextRenderingHint。如果您想要一些可重用的东西,可以做的是创建一个扩展Label类的Custom 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控件出现在顶部的“我的项目组件”类别下的工具箱中。在此自定义标签的属性 Pane 中,您将看到新的TextRenderingHint属性。将此设置为“AntiAlias”。在您的表单中添加另一个标签,并比较它们的外观。

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

10-08 02:36