如何确定给定字体的字符串的大小

Nif*_*fle 17 .net c# fonts winforms

我有一个小表单,显示一些进度信息.
很少我需要显示一个相当长的消息,我希望能够在需要时调整此表单的大小,以便此消息适合表单.

那么如何找出S字体中的字符串宽度F呢?

Dir*_*mar 19

这取决于正在使用的渲染引擎.您基本上可以在GDI和GDI +之间切换.可以通过相应地设置UseCompatibleTextRendering属性来完成切换

使用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窗体控件中使用复杂脚本构建支持全球的应用程序


Fre*_*ool 5

这个怎么样:

Size stringsize = graphics.MeasureString("hello", myFont);
Run Code Online (Sandbox Code Playgroud)

(是MSDN链接.)