我需要在 Infragistics 工具栏上绘制一个字符串,我不能使用标签,因为它的背景实际上不是透明的(见图片)。
我已经设法使用 DrawString 方法根据需要覆盖文本,但问题是文本不像标签。它更厚,有锯齿,并且出于某种原因是黑色的。
我应该如何更改我的代码以使用 DrawString 方法复制标签的外观(相同的字体、大小、前景色)?
还有代码:
FontFamily fontFamily = new FontFamily("Microsoft Sans Serif");
Font font = new Font(
fontFamily,
17,
FontStyle.Regular,
GraphicsUnit.Pixel);
SolidBrush solidBrush = new SolidBrush(SystemColors.ControlText);
drawParams.Graphics.TextRenderingHint = TextRenderingHint.AntiAlias;
drawParams.Graphics.DrawString("String Drawn with DrawString method", font, solidBrush, textEditorLoc.X, textEditorLoc.Y + 25);
最佳答案
尝试使用 TextRenderer
类:
TextRenderer.DrawString(
drawParams.Graphics,
"String Drawn with TextRenderer (GDI) method",
font,
new Point(textEditorLoc.X, textEditorLoc.Y + 25),
SystemColors.ControlText);
同时将 TextRenderingHint
保留为 SystemDefault
并使用与标签相同的字体大小。
关于c# - 使用 DrawString 方法复制标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11391088/