假设我在Arial Regular中将字符“A”渲染到大小为14的字体的屏幕上.有没有办法在C#中计算多少像素宽?
感谢所有的答案到目前为止.我正在渲染文本的方式是通过ESRI的ArcEngine,通过DynamicDisplay引擎,通过调用GDI或GDI(我不知道哪一个)关于时尚.
解决方法
这取决于正在使用的渲染引擎. .NET可能使用GDI或GDI.可以通过相应设置
UseCompatibleTextRendering属性或调用
Application.SetCompatibleTextRenderingDefault
方法进行切换.
使用GDI时应该使用MeasureString
:
string s = "A sample string"; SizeF size = e.Graphics.MeasureString(s,new Font("Arial",24));
当使用GDI(即本地Win32渲染)时,您应该使用TextRenderer
类:
SizeF size = TextRenderer.MeasureText(s,24));
本文介绍了更多细节:
07004
请注意,以上谈论Windows窗体.在WPF中,您将使用FormattedText