TextRenderer基于GDI和Graphics.DrawString基于GDI +。在图像上绘制文本时,这些功能中的哪一个可以提供更高质量的文本。

最佳答案

仅售2美分:我始终使用Graphics.DrawString,除非需要为我的Windows窗体控件进行自定义绘制。例如,在设置了OwnerDraw的列表框中,如果我附加了一个DrawItem事件处理程序,该程序可以完全绘制项目(包括项目文本)。或者在自定义控件中,我必须自己绘画。

在支持该功能并启用了该功能的操作系统上使用Visual Styles的应用程序中,与其他控件绘制的常规文本相比,使用Graphics.DrawString绘制的文本看起来“关闭”。这似乎主要是由于处理(或不处理)“ClearType”的方式不同,尽管我不确定,我也没有文档来支持该语句。 (它看起来像文本在.Net 1.x上或将FlatStyle从Standard切换到System和v.v时的方式。)

仅在这种情况下(Winforms控件上的文本绘画),我使用TextRenderer.DrawText来使文本更好地与其他控件融合。

如果“与本地人融合”不是您的关注点之一(因为您希望在图像上绘制,这看起来像),那么我将选择Graphics.DrawString。另外,如果要打印,则必须这样做,因为TextRenderer仅在屏幕上可用(而不在打印机 Canvas 上)。

关于c# - Graphics.DrawString与TextRenderer.DrawText?哪些可以提供更好的质量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8283631/

10-10 23:34