在我的路径中学习c#我在一个最明显的方式中遇到了使用DrawString的问题(至少我认为,我认为现在还是这样):左对齐。
如果我必须使用不同尺寸的字体打印多个线条,使用不同尺寸的字体,它们在左侧位置不完全对齐,但总会有一些空白区域。
我知道,这件事已经被问过很多次了,无数的网站都会检查它,但不幸的是我找不到任何正常的解决方案。
这是我的作业:
int x = 2480;
int y = 3508;
Bitmap bmp = new Bitmap(x, y);
bmp.SetResolution(300, 300);
Graphics g = Graphics.FromImage(bmp);
g.Clear(Color.White);
A4纸张的简单表示。这里没什么可看的。
他们说,加上这个:
g.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAliasGridFit;
或其他类似的反别名内容 - 判决:USELESS。
他们说,使用一个很好的字符串格式:
StringFormat sf = new StringFormat(StringFormat.GenericTypographic);
sf.LineAlignment = StringAlignment.Near;
sf.Alignment = StringAlignment.Near;
sf.Trimming = StringTrimming.None;
带着许多花哨的旗帜 - 判决:USELESS。
他们是,那些:
SolidBrush b = new SolidBrush(Color.Black);
Font f32 = new Font("Arial", 32);
g.DrawString("Company name", f32, b, 0, 0, sf);
Font f14 = new Font("Arial", 14);
g.DrawString("Address somewhere", f14, b, 0, 100, sf);
他们也说,用另一种方式:
Rectangle r = new Rectangle(0, 0, 1000, 1000);
TextFormatFlags flags = TextFormatFlags.NoPadding | TextFormatFlags.Left | TextFormatFlags.NoClipping | TextFormatFlags.TextBoxControl;
TextRenderer.DrawText(g, "Company name", f32, r, Color.Black, flags);
有许多旗帜在各种组合中 - 判决:USELESS。
许多帖子/网站都说:使用MeasureString。 太好了,当我有神话般的“措施”时,我应该怎么做呢? 如果我尝试使用带有该度量的Rectangle来封闭字符串,则不会显示任何内容,可能是因为字符串周围没有空格
任何帮助表示赞赏。谢谢你的阅读。