如果你想要获取字符串 "你好吗" 的字节数组长度或者字符数,
使用如下代码:
cs
string s = "你好吗";
//字节数组长度
int byteCount = System.Text.Encoding.UTF8.GetBytes(s).Length;
//字符数
int charCount = s.Length;
如果你想获取这句话在特定字体下显示时所需要的像素宽度或高度,
使用如下代码:
cs
using System.Drawing;
Graphics graphics = Graphics.FromHwnd(IntPtr.Zero);
Font font = new Font("Arial", 12);
SizeF textSize = graphics.MeasureString(s, font);
textSize.Width 就是你想要的结果,单位是像素。
注意:这个结果会依赖你的系统设置和所选字体的影响。
上述代码中的:Graphics graphics_ct = Graphics.FromHwnd(IntPtr.Zero);
用于从给定的窗口句柄创建一个Graphics
对象。
具体来说,Graphics graphics_ct = Graphics.FromHwnd(IntPtr.Zero);
这行代码的作用是创建一个新的Graphics
对象,该对象可以用于在窗口上进行绘图操作。
IntPtr.Zero
是一个特殊的窗口句柄,通常表示一个无效的窗口句柄,因此这行代码实际上不会在任何窗口上进行绘图。
Graphics
类是C#中用于绘制图形和文本的类,它提供了许多方法和属性,可以用于绘制线条、形状、文本和其他可视化元素。
通过使用Graphics
对象,可以在窗口、图像、打印机或其他绘图设备上进行绘图操作。
在这行代码中,Graphics.FromHwnd(IntPtr.Zero)
方法会返回一个新的Graphics
对象,但该对象的绘制操作不会对任何窗口产生影响,因为使用的是无效的窗口句柄。
通常这种用法是为了在代码中创建一个Graphics
对象,但并不立即进行实际的绘图操作,而是在后续的代码中使用该对象进行绘图。