【发布时间】:2015-07-28 06:40:31
【问题描述】:
我有一些代码:
string text = "Some text\t with tabs\t here!";
string spaces = "";
for (int i = 0; i < 4; i++)
{
spaces += " ";
}
text = text.Replace(@"\t", spaces);
我用四个空格替换所有制表符,然后尝试绘制文本:
graphics.DrawString(text, font, new SolidBrush(Color.Black), offsetX, offsetY);
但是文字在单词之间只有一个空格。其他空格被删除。 如何绘制所有空格的文本?
【问题讨论】:
-
示例代码过于复杂。为什么不创建一个以空格开头的字符串。所以删除对替换的调用。尽可能简单。
-
当我测试你的代码时,\t 没有被空格替换,你必须在替换后得到 \t。使用 text = text.Replace("\t", 空格);将 \t 替换为空格
-
某些(正常)空格在某些字体中显得非常小。一些字体有更大的空格(em-spaces),这可能会有所帮助。但是如果你打印一个没有空格的相同字符串,你会看到空格..
-
阿迪尔,这行得通:text.Replace(@"\t", spaces);但不是这个: text.Replace("\t", spaces);