假设我有200像素的空间,我想在其中绘制两个字符串: - 第一个字符串应该左对齐 - 右边第二个字符串应该是右对齐的 - 但如果两者都不合适,则不重叠(然后做我的String.Trimming选项所说的任何事情)
我是否必须手动测量每一个并手动绘制,或者DrawString是否有某种方式来支持我正在尝试做的事情而没有重新发明轮子?
想象一下\ l和\ r \ n是逃避这样做的,然后我可以说
graphics.Drawstring("\lfirst\rsecond", ...);
我最终会找到像
这样的东西"first second"
至少那是我想要发生的事情(我知道\ l和\ r \ n不存在)。有办法吗?
答案 0 :(得分:3)
我忽略了你的旗帜,而是向你展示(粗略地)你如何对齐文字。这很容易挑出你的文字,把它分开并把它画成两个单独的字符串!
string text2 = "Use TextFormatFlags and Rectangle objects to"
+ " align text in a rectangle.";
using (Font font2 = new Font("Arial", 12, FontStyle.Bold, GraphicsUnit.Point))
{
Rectangle rect2 = new Rectangle(150, 10, 130, 140);
// Create a TextFormatFlags with word wrapping, horizontal center and
// vertical center specified.
TextFormatFlags flags = TextFormatFlags.HorizontalLeft |
TextFormatFlags.VerticalCenter | TextFormatFlags.WordBreak;
// Draw the text and the surrounding rectangle.
TextRenderer.DrawText(e.Graphics, text2, font2, rect2, Color.Blue, flags);
e.Graphics.DrawRectangle(Pens.Black, rect2);
}
答案 1 :(得分:1)
从长远来看,这就是我最后做的事情:
非常简单,虽然我希望框架中有一些东西可以帮我完成工作。