質問

私はこれに似た質問を読んだように感じますが、それを見つけることができないので、複製する場合は閉じてください。

私はテキストを描画しようとしています Graphics::DrawString モノスペースフォント(コンソラ)を使用。ただし、テキストを描くと、文字は均等に間隔を空けていません。これがどのように見えるかです:

enter image description here

ご覧のとおり、文字は2つと3つのグループにクラスター化されています。私は読む この記事 そして、私はそれを避けるために十分な措置を講じたと思いました StringFormat::GenericTypographic, 、しかしどうやらそうではありません。私も使用しています TextRenderingHintClearTypeGridFit 他のすべてがジャンクのように見えるからです(そしてありません TextRenderingHintClearType なしで GridFit 部)。

Monospaceフォントでテキストを描く他のすべてのプログラムと同様に、正しく見えるようにテキストを描くにはどうすればよいですか?

役に立ちましたか?

解決

問題は、GDI+がテキストを描画するために異なる(そして放棄されてから長い間)システムを使用していることです。 .NETフレームワーク2.0から始めて、Microsoftはすべてのコントロールを変更して、GDI+ではなくテキストレンダリングに実際にGDIを使用しました。 GDIでのテキストレンダリングはハードウェアが加速され、文字レンダリング、Uniscribe、ligaturesで改善を続けました。 GDI+でのテキストレンダリングは、ハードウェアの加速ではなく、修正や改善を取得しません。

GDIは、抗拡散を描画し、ClearType_QualityまたはAntialiased_Qualityを使用することもできます。

これが比較です

  • GDI+(Graphics.DrawString)
  • GDI(TextRenderer.DrawText)

enter image description here

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top