Tag: 抽绳

确定文本字符串中的行数?

作为打印类的一部分,我希望能够在多个页面上打印长字符串,但我不知道如何计算整个字符串的高度,我将通过首先计算字符串中的行数来确定。 我知道我可以计算换行符的数量,但我也使用自动换行,因此每当一行超过页面宽度时,就会添加换行符。 所以我想我可以计算换行符的数量,并找出每一行的宽度,并弄清楚每行是否需要一个自动换行换行符,但这似乎是一个过于复杂的问题我想可以更简单地完成。 e.Graphics.DrawString(multiPageString, new Font(“Courier New”, 12), Brushes.Black, new RectangleF(0, 0, 810, pageHeight)); 如果您有任何建议,请告诉我们谢谢!

在鼠标单击PictureBox上时弹出TextBox,以便为图片添加自定义注释

在我的C#winforms应用程序中,我有一个可以将一些位图图像加载到其中的图片框。 我想要做的是,如果用户点击图片框中的某个位置,在鼠标位置会出现一个小文本框,用户可以在图片中添加自定义文本(注释)。 我知道如何将字符串写入位图文件,但我找不到在鼠标位置弹出文本框的方法,并在用户写入内容并按下回车键时自动将文本添加到图像中。 应如何定义此文本框及其属性? 谢谢。

Graphics.DrawString()vs TextRenderer.DrawText()

我对这两种方法感到困惑。 我的理解是Graphics.DrawString()使用GDI +并且是基于图形的实现,而TextRenderer.DrawString()使用GDI并允许大量字体并支持unicode。 我的问题是当我尝试将基于十进制的数字打印为打印机的百分比时。 我的研究让我相信TextRenderer是一个更好的方法。 但是,MSDN建议, “TextRenderer的DrawText方法不支持打印。您应该始终使用Graphics类的DrawString方法。” 我使用Graphics.DrawString打印的代码是: if (value != 0) e.Graphics.DrawString(String.Format(“{0:0.0%}”, value), GetFont(“Arial”, 12, “Regular”), GetBrush(“Black”), HorizontalOffset + X, VerticleOffset + Y); 对于0到1之间的数字打印“100%”,对于零以下的数字打印“-100%”。 我放的时候 Console.WriteLine(String.Format(“{0:0.0%}”, value)); 在我的print方法中,值以正确的格式打印(例如:75.0%),所以我很确定问题出在Graphics.DrawString()中。

如何对齐SpriteBatch.DrawString绘制的文本?

有没有一种简单的方法可以将文本对齐到右边和中心(而不是默认左边)?

C#中的旋转文本对齐

我需要能够旋转标签中的文本并将其与左,右或中心对齐。 到目前为止,我能够在派生标签的onPaint方法中使用此代码进行旋转: float width = graphics.MeasureString(Text, this.Font).Width; float height = graphics.MeasureString(Text, this.Font).Height; double angle = (_rotationAngle / 180) * Math.PI; graphics.TranslateTransform( (ClientRectangle.Width + (float)(height * Math.Sin(angle)) – (float)(width * Math.Cos(angle))) / 2, (ClientRectangle.Height – (float)(height * Math.Cos(angle)) – (float)(width * Math.Sin(angle))) / 2); graphics.RotateTransform(270f); graphics.DrawString(Text, this.Font, textBrush, new PointF(0,0), stringFormat); graphics.ResetTransform(); 它工作正常。 我可以看到文字旋转了270度。 但是当我尝试在stringFormat中设置对齐时,它变得疯狂,我无法弄清楚发生了什么。 如何将文本旋转270度并将其对齐?