c# - 如何从字符串计算浮点值
问题描述
我不知道如何从字符串计算浮点值
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;
}
解决方案
如果要计算字符串的大小,可以尝试使用MeasureString
,但是,根据这个问题,这不适用于只有空格的字符串。作为一种解决方法,您可以尝试在空字符串的末尾添加一个字符,或者简单地将空格替换为另一个字符以获取度量,例如:
string row1 = new String(' ', 66) + "#";
SizeF rowSize = graphicsObj.MeasureString(row1, drawFront);
float width = rowSize.Width;
float height = rowSize.Height;
推荐阅读
- unit-testing - 使用 GTEST / GMOCK 对嵌入式源代码进行单元测试
- c - 拆分服务器进程的最佳方法
- android - 工具栏中的搜索图标不可见
- xpath - Xpath 中这个 BeautifulSoup 表达式的等价物是什么?
- windows - FFMPEG xstack无法识别输入
- linux-kernel - 从源代码编译 Android 内核模块
- wordpress - Wordpress 产品页面自动更改为每行 1 个产品
- c - 为什么我们不能为结构的成员设置默认值?
- c++ - 在 C++ 中使用成员函数的轻量级方法
- unix - 如何从字符串中提取前 2 位和后 3 位并在 unix 中连接它们?