有谁知道如何使标签或文本更平滑?此刻,他们看上去参差不齐。当我想使标签动态化时,我不能只插入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)变量的默认值即可。