Determine how wide a rendered character is in .NET
It depends on the rendering engine being used. .NET may use GDI or GDI+. Switching can be done by setting the UseCompatibleTextRendering
property accordingly or calling the Application.SetCompatibleTextRenderingDefault
method.
When using GDI+ you should use MeasureString
:
string s = "A sample string";
SizeF size = e.Graphics.MeasureString(s, new Font("Arial", 24));
When using GDI (i.e. the native Win32 rendering) you should use the TextRenderer
class:
SizeF size = TextRenderer.MeasureText(s, new Font("Arial", 24));
More details are described in this article:
Text Rendering: Build World-Ready Apps Using Complex Scripts In Windows Forms Controls
Note that the above talks about Windows Forms. In WPF you would be using FormattedText
You don’t say how you “render” it, but if you have a string, you can use MeasureString too.
Here's an MSDN piece about determining font metrics. You can use Graphics.MeasureString to do the measurement.