【发布时间】:2014-09-23 12:49:34
【问题描述】:
基本上,我想测量 TextBox 中的文本大小,我发现 TextRenderer 给了我正确的值,而 Graphics 给了我错误的值。这样看来,TextBox 应该使用 GDI 来绘制文本,对吧?
但是,无论我在哪里阅读,我都看到它应该使用 GDI+。例如:
- 这里http://microsoft.public.dotnet.framework.windowsforms.controls.narkive.com/yoHKjPut/text-rendering-accuracy-problem-in-textbox-richtextbox 说TextBox 和Buttons 使用GDI+。
- 这里Why is Graphics.MeasureString() returning a higher than expected number? 说默认是在 GDI+ 中绘制的“兼容模式”
那么为什么我使用 TextRenderer 而不是使用 Graphics 得到一致的结果,而它应该是其他方式呢?
【问题讨论】:
-
您如何发布一些给出错误值的代码,并告诉我们正确的值应该是什么,为什么?
-
XY 问题?请注意, Graphics.MeasureString 有各种重载。如果你用对了它会给你很好的结果。最简单的形式是带回一个每个字符足够大的盒子,而不是用来测量字符串。查一下!