首页 > 解决方案 > 如何从字符串计算浮点值

问题描述

我不知道如何从字符串计算浮点值

float x = 300.0F;
Dictionary<short, string> stringDict = new Dictionary<short, string>();
Dictionary<short, string> whiteSpace = new Dictionary<short, string>();

string row1 = new String(' ', 67);
whiteSpace.Add(1, row1);
stringDict.Add(1, rtBox.Substring(12, 31).Replace("\n", " "));

graphicsObj.DrawString(whiteSpace[i] + stringDict[i], drawFont, drawBrush, x, y, drawFormat);

预期输出为:

graphicsObj.DrawString(stringDict[i], drawFont, drawBrush, x + whiteSpace[i] float lenght, y, drawFormat);

我怎样才能计算这个浮点值,这样我就可以省略绘制空格?

编辑 1:下面的代码不起作用,它不会在 x 轴上移动绘图。

for (short i = 1; i <= 28; i++)
{
     SizeF rowSize = graphicsObj.MeasureString(whiteSpace[i], drawFont);
     float widthRow = rowSize.Width;
     graphicsObj.DrawString(stringDict[i], drawFont, drawBrush, x + widthRow, y, drawFormat);
      y += 15.0F;
}

标签: c#drawingcalculation

解决方案


如果要计算字符串的大小,可以尝试使用MeasureString,但是,根据这个问题,这不适用于只有空格的字符串。作为一种解决方法,您可以尝试在空字符串的末尾添加一个字符,或者简单地将空格替换为另一个字符以获取度量,例如:

string row1 = new String(' ', 66) + "#";
SizeF rowSize = graphicsObj.MeasureString(row1, drawFront);
float width = rowSize.Width;
float height = rowSize.Height;

推荐阅读