GDI +を使用してガラスにテキストを描画する:
graphics.DrawString(s, Length(s), font, MakePointF(x, y), brush);
ClearTypeが有効になっているテキストは、ガラス上での描画が非常に不十分であることに気付くでしょう。
しかし、ガラスを無効にすると、もちろん、テキストはうまく描画されます。
比較のために、ここにアンチエイリアスフォントスムージングがあります:
そして、ここにフォントスムージングはありません:
注:StackOverflowはモニター上の画像のサイズを変更するため、実際よりも見栄えのするフォントスムージングはありません。
ガラスにClearTypeテキストを描画するにはどうすればよいですか?
ノート
- Win32ネイティブ
- .NETではない(つまりネイティブ)
- Winformsではない(つまりネイティブ)
- GDI +(つまりネイティブ)
Markが示唆しているのは、テキストレンダリングに対するユーザーの好みを尊重できないことです(つまり、 " SystemDefault
"。ClearTypeはGlassでは機能しないため、使用できません。
つまり、ガラス上でレンダリングする場合は、テキストレンダリングを次のようにオーバーライドする必要があります。
graphics.SetTextRenderingHint(TextRenderingHintAntiAliasGridFit);
それ以外の場合は、TextRenderingHint
をデフォルトのままにしておく必要がありますTextRenderingHintSystemDefault
。