假设我在Arial Regular中使用14号字体将字符"A"渲染到屏幕上.C#中有没有办法计算它的宽度是多少?
谢谢你到目前为止的所有答案.我渲染文本的方式是通过ESRI的ArcEngine,它通过DynamicDisplay引擎调用GDI或GDI +(我不知道哪一个).
Dir*_*mar 11
这取决于正在使用的渲染引擎..NET可能使用GDI或GDI +.可以通过相应地设置UseCompatibleTextRendering属性或调用Application.SetCompatibleTextRenderingDefault方法来完成切换.
使用GDI +时,您应该使用MeasureString:
string s = "A sample string";
SizeF size = e.Graphics.MeasureString(s, new Font("Arial", 24));
Run Code Online (Sandbox Code Playgroud)
使用GDI(即本机Win32渲染)时,您应该使用TextRenderer该类:
SizeF size = TextRenderer.MeasureText(s, new Font("Arial", 24));
Run Code Online (Sandbox Code Playgroud)
本文描述了更多细节:
请注意,上面谈到了Windows窗体.在WPF中你会使用FormattedText