C#GDI +无法用空格绘制文本 - c#

我有一些代码:

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);

但是文本在单词之间仅留出一个空格。和其他空间被删除。
如何用所有空格绘制文本?

参考方案

请改用TextRenderer.DrawText。从.NET 2.0开始,除非启用UseCompatibleTextRendering,否则Windows.Forms也将使用此功能。

TextRenderer.DrawText(graphics, text, font,
    new Point(offsetX, offsetY), Color.Black, TextFormatFlags.ExpandTabs);

在Java中,执行“ ++++++++”表达式,编译器未报告任何错误并且可以正确执行? - java

我用eclipse编写了这段代码,用war写过,结果为3d。public static void main(String[] args) { double a = 5d + + + + + +-+3d; System.out.println(a); } 参考方案 您的表情可以改写为(5d) + (+ + + + +-+3d) 其中第一个+是应用于两个操作数的…

在Python和C++之间传输数据而无需写入Windows和Unix文件 - python

我有预先存在的python和C ++文件,其中python文件定义了许多点,而C ++代码利用其现有库进行了所需的计算。最终产品是C ++代码写入的文件。我正在寻找一种在python中获取2000点列表的方法,将其传递给函数,然后执行所有C ++代码并输出我需要的文件。其他注意事项。这必须是可以在Linux或Windows机器上工作的东西,并且最少安装新插件…

Java值加变量++ - java

考虑以下代码int val1 = 3; val1++; int val2 = val1++; System.out.println(val1); System.out.println(val2); Val1值= 5;Val2值= 4;为什么Val1的值是“ 5”?据我了解,应该为4,因为:在第1行,它的赋值为3,在第2行,通过val1 ++加上1,结果val…

如何锁定终端运行的perl,obj c,c++,python和ruby等脚本的源代码? - python

我想出售我在perl,obj c,c ++,python,ruby,bash,php等中制作的脚本等它们都在终端中运行。 (Linux)如何锁定源代码,以便无需人们访问源代码即可分发我的脚本..?换句话说,如何将在Terminal中运行的程序的源代码锁定,以便人们可以使用该程序(如果该代码已下载到他们的Linux机器上,但他们无法访问实际的源代码)?例:ex…

将数组从非托管C++传递到C# - c#

我是C#的C ++ / CLI包装新手,在将数组传递给C#时遇到一些问题。原生C ++const double *NDimInversion::GetOutputAverage() const { if ( mOutputOk ) return mAvgY.data().begin(); else throw runtime_error("Erro…