1

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);
4

2 に答える 2

4

TextRendererクラスを使用してみてください:

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

また、そのままTextRenderingHintにしSystemDefaultて、ラベルと同じフォントサイズを使用します。

于 2012-07-09T08:07:43.017 に答える
0

ラベルの標準のテキストサイズは8.25ポイント、つまり約11ピクセルです。サイズが17ピクセルの場合、テキストサイズは13ポイントになります。

これを使ってみてください

 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);
于 2012-07-09T08:09:00.830 に答える