c# - 使用 DrawString 方法复制标签

标签 c# .net winforms drawstring

我需要在 Infragistics 工具栏上绘制一个字符串,我不能使用标签,因为它的背景实际上不是透明的(见图片)。

我已经设法使用 DrawString 方法根据需要覆盖文本,但问题是文本不像标签。它更厚,有锯齿,并且出于某种原因是黑色的。

我应该如何更改我的代码以使用 DrawString 方法复制标签的外观(相同的字体、大小、前景色)?

enter image description here

还有代码:

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/

相关文章:

c# - System.Drawing.Image 交换纵向图像的宽度和高度

c# - 如何在我的项目中使用 AntiXss?

c# - 将参数从文本框传递到 RDLC 报告

c# - 在 C# Winforms 中,让异步方法保证其在 UI 线程上执行的最精确方法是什么?

c# - ASP C# 如何编写整洁的 GUI 代码

c# - 适用于 Windows 应用程序的 Monobjc 和 Mac UI

c# - 我应该如何命名这个扩展方法?

vb.net - 根据键数组检查 e.KeyChar

.net - .NET XmlSerializer 类可以将 InnerXml 反序列化为字符串吗?

.net - 存储值 > 24 :00:00? 的 .Net 时间跨度的正确 SQL 类型是什么