如何确定给定字体的字符串的大小
我有一个小表单,显示一些进度信息。
我很少需要显示相当长的消息,我希望能够在需要时调整此表单的大小,以便此消息适合表单。
那么如何找出字体F
字符串S
宽度?
这取决于正在使用的渲染引擎。 你基本上可以在GDI和GDI +之间切换。 可以通过相应地设置UseCompatibleTextRendering
属性来完成切换
使用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, new Font("Arial", 24));
请参阅此文章: 文本呈现:在Windows窗体控件中使用复杂脚本构建支持全球的应用程序
这个怎么样:
Size stringsize = graphics.MeasureString("hello", myFont);
( 这是MSDN链接。)
回到Win32,我使用了VisualStyleRenderer :: GetTextExtent函数的等效函数。