如何对文本使用抗锯齿

抗锯齿 是指通过平滑绘制图形和文本的锯齿边缘,以提高其外观或可读性。 使用托管的 GDI+ 类,可以呈现高质量的抗锯齿文本,以及较低的质量文本。 通常,质量较高的呈现比质量较低的呈现花费更多的处理时间。 若要设置文本质量级别,请将TextRenderingHint属性设置为GraphicsTextRenderingHint枚举的一个元素之一。

示例:

下面的代码示例使用两种不同的质量设置绘制文本。

FontFamily fontFamily = new FontFamily("Times New Roman");
Font font = new Font(
   fontFamily,
   32,
   FontStyle.Regular,
   GraphicsUnit.Pixel);
SolidBrush solidBrush = new SolidBrush(Color.FromArgb(255, 0, 0, 255));
string string1 = "SingleBitPerPixel";
string string2 = "AntiAlias";

e.Graphics.TextRenderingHint = TextRenderingHint.SingleBitPerPixel;
e.Graphics.DrawString(string1, font, solidBrush, new PointF(10, 10));

e.Graphics.TextRenderingHint = TextRenderingHint.AntiAlias;
e.Graphics.DrawString(string2, font, solidBrush, new PointF(10, 60));
Dim fontFamily As New FontFamily("Times New Roman")
Dim font As New Font( _
   fontFamily, _
   32, _
   FontStyle.Regular, _
   GraphicsUnit.Pixel)
Dim solidBrush As New SolidBrush(Color.FromArgb(255, 0, 0, 255))
Dim string1 As String = "SingleBitPerPixel"
Dim string2 As String = "AntiAlias"

e.Graphics.TextRenderingHint = TextRenderingHint.SingleBitPerPixel
e.Graphics.DrawString(string1, font, solidBrush, New PointF(10, 10))

e.Graphics.TextRenderingHint = TextRenderingHint.AntiAlias
e.Graphics.DrawString(string2, font, solidBrush, New PointF(10, 60))

下图显示了示例代码的输出:

显示具有两种不同质量设置的文本的屏幕截图。

编译代码

前面的代码示例设计用于 Windows 窗体,并且它需要 PaintEventArgse,这是 PaintEventHandler 的一个参数。

另请参阅