zin*_*orp 15
如果要对其进行反别名,则必须动态生成表示文本的图像.以下是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);
}
}
Run Code Online (Sandbox Code Playgroud)
添加一个名为CustomLabel的新自定义控件(或任何您想要调用的自定义控件)并使用上面的代码.重建项目,然后您应该看到CustomLabel控件出现在顶部的工具箱中的"MyProject Components"类别下.在此自定义标签的属性窗格中,您将看到新的TextRenderingHint属性.将此设置为"AntiAlias".在表单中添加另一个标签并比较它们的外观.
如果要将其默认为AntiAlias,只需更改私有变量的默认值即可.
你指的是ClearType吗?然后必须在Windows中启用ClearType,并且必须使用现代字体,例如Tahoma或Segoe UI,而不是MS Sans Serif.
更新
您发布了问题的示例.我把它放大到400%.很明显的ClearType反锯齿像素被启用.就个人而言,我不认为文字看起来像是锯齿状.如果您想要更高质量的屏幕文本,您可以购买具有更高物理分辨率(每英寸像素数)的屏幕,然后以(相应地)更大的尺寸绘制文本.然后文本将在屏幕上具有相同的大小,但看起来会更加流畅.
您也可以放弃ClearType并使用其他一些字体平滑算法,但这远非微不足道,因为ClearType是Windows上的字体平滑系统.
更新2
如果您运行的是Windows 7,则可以微调ClearType.只需打开开始菜单,写下"ClearType"并启动指南.我认为Vista和XP也有指南,但默认情况下可能没有安装,但可以像PowerToys那样提供......