【问题标题】:Replicate label with DrawString method使用 DrawString 方法复制标签
【发布时间】:2012-07-09 07:59:47
【问题描述】:

我需要在 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);

【问题讨论】:

    标签: c# .net winforms drawstring


    【解决方案1】:

    尝试使用TextRenderer类:

    TextRenderer.DrawString(
        drawParams.Graphics,
        "String Drawn with TextRenderer (GDI) method",
        font,
        new Point(textEditorLoc.X, textEditorLoc.Y + 25),
        SystemColors.ControlText);
    

    还将TextRenderingHint 保留为SystemDefault,并使用与标签相同的字体大小。

    【讨论】:

    • 我遇到了类似的问题。 DrawString 方法与PaintCellsDataGridView 中的作用不同。字体变薄了。 TextRenderer.DrawString 解决了这个问题。
    【解决方案2】:

    标签的标准文本大小为 8.25 磅,或大约 11 像素。您的 17 像素大小导致文本大小为 13 pt。

    试试这个

     FontFamily fontFamily = new FontFamily("Microsoft Sans Serif");
     Font font = new Font(
                       fontFamily,
                       8.25f,
                       FontStyle.Regular,
                       GraphicsUnit.Point);
     SolidBrush solidBrush = new SolidBrush(SystemColors.ControlText);            
     e.Graphics.DrawString("String Drawn with DrawString", font, solidBrush, textEditorLoc.X, textEditorLoc.Y + 25);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-21
      • 1970-01-01
      • 2019-04-19
      • 1970-01-01
      相关资源
      最近更新 更多