
.NET 6 のWindows Formsで画像上にテキストを描画する際、Graphics.DrawStringで描画したときはうまくアンチエイリアスがかかるのですが、
TextRenderer.DrawText()を使用するとひどい見た目になります。
OnPaintイベントなどで渡されるGraphicsオブジェクトを使用するときは、正常に描画できるのですが、Graphics.FromImageでもらったオブジェクトを使うと発生します。
(GraphicsのTextRenderingHintはAntiAliasに設定しています)
どうすればきれいに描画できるでしょうか?
テキストの幅を正常に測定したいのでTextRendererを使う必要があります
描画コード:
C#
1 2void DrawGraphicsDrawString(Graphics g) 3{ 4 g.TextRenderingHint = TextRenderingHint.AntiAlias; 5 g.SmoothingMode = SmoothingMode.AntiAlias; 6 using StringFormat format = StringFormat.GenericTypographic; 7 g.DrawString("Graphics.DrawString", this.Font, brush, 0, 0, format ); 8} 9 10void DrawTextRendererDrawText(Graphics g) 11{ 12 g.TextRenderingHint = TextRenderingHint.AntiAlias; 13 g.SmoothingMode = SmoothingMode.AntiAlias; 14 TextRenderer.DrawText( g, "TextRenderer.DrawText()", this.Font, new Point(0, 0), color, TextFormatFlags.NoPadding ); 15} 16



回答1件
あなたの回答
tips
プレビュー