为什么我在这条线上出错?

use*_*612 4 .net c#

float startPos = e.Graphics.MeasureString(toMeasure, f);
                    e.Graphics.DrawString(keyword, f, sb, new PointF(e.Bounds.X + (int)startPos, e.Bounds.Y));
Run Code Online (Sandbox Code Playgroud)

这是f:

using (Font f = new Font(FontFamily.GenericSansSerif, 8, FontStyle.Regular))
Run Code Online (Sandbox Code Playgroud)

这是toMeasure:

string toMeasure = data[e.Index].Substring(0, keywords - 1);
Run Code Online (Sandbox Code Playgroud)

错误就行了:

float startPos = e.Graphics.MeasureString(toMeasure, f);
Run Code Online (Sandbox Code Playgroud)

错误是:

无法将类型'System.Drawing.SizeF'隐式转换为'float'

我该如何解决?由于第二行应该浮动,但第一行不能转换SizeFfloat.

sa_*_*213 6

如果你想要的话Width,string你将不得不WidthSizeF结构中获得结果MeasureString

例:

float startPos = e.Graphics.MeasureString(toMeasure, f).Width;
Run Code Online (Sandbox Code Playgroud)