1. ホーム
  2. wpf

[解決済み] WPF フォントのぼやけ問題- 解決策

2022-04-27 14:56:09

質問

以下のリンク先で、問題の説明とデモが行われています。

説明します。 WPFにおけるテキストの明瞭化 . このリンク先にはフォントの比較があります。

この問題に対して、可能な限りの解決策を集めたいと思います。Microsoft Expression BlendはWPFを使用していますが、フォントは読めそうです。

  • Microsoft Expression Blendと同様に背景を暗くする
  • フォントサイズを大きくする、フォントを変更する(Calibri ... ) [リンク]
  • ウィンドウズフォームを埋め込む [リンク]
  • GDI+ や Windows Forms TextRenderer クラスを使って、テキストをビットマップにレンダリングし、そのビットマップを WPF コントロールとしてレンダリングします。 [リンク]

他に解決策はありますか?

VS2010(およびWPF4)ベータ2で修正される予定です。

ようやく解決したようです。

Scott HanselmanのComputerZen.comです。WPFとテキストのぼやけ、これで完全な明瞭化に成功

解決するには?

技術的背景

WPF Text Program Managerの一人によるWPF Textレンダリングに関する詳細な記事がwindowsclient.netに掲載されています。 WPFにおけるテキストの明瞭化 .

この問題は、WPFがスムーズなアニメーションを実現するために、リニアに拡大縮小するフォントレンダラを必要としていることに起因しています。一方、Pure ClearType は、垂直方向のステムを次のピクセルに押し出すために、フォントにかなりの自由度を持たせています。

古典的なカスケードパターンを比較すれば、その違いは一目瞭然です。左下がWinForms、右上がWPFです。

私はWPFのフォント・レンダリングの特異性が好きではありませんが、Winformsのカスケードで行われているようにアニメーションがジャンプするようになれば、大騒ぎになることは想像に難くないでしょう。

レジストリで遊ぶ

私が特に興味を持ったのは、MSDN の記事へのリンクです "。 ClearTypeレジストリ設定 レジストリで可能なユーザー側の調整について説明しています。

  • ClearTypeレベル:サブピクセルのヒンティング量
  • ガンマレベル
  • 画素構造:表示画素の色縞の配列方法
  • テキストコントラストレベル:グリフのステムの幅を調整し、フォントを重くします。

これらの設定を弄っても根本的な問題は改善されませんでしたが、敏感なユーザーにとっては色にじみの影響を軽減するのに役立ちます。

別のアプローチ

Text Clarityの記事にあったベストアドバイスは、フォントサイズを大きくすることと、フォントを変更することでした。標準のSegoe UIよりもCalibriの方が私には合っています。ウェブフォントとして人気があるため、Verdanaも試してみましたが、14ptと15ptの間でウェイトが跳ね上がり、フォントサイズをアニメーション化したときに非常に目立ちます。

WPF 4.0

WPF 4 では、フォントのレンダリングに影響を与えるためのサポートが改善されます。また WPF Text Blogに記事があります。 は、その変更点を説明しています。最も顕著なのは、(少なくとも)3種類のテキストレンダリングが存在するようになったことです。

<サブ デザイナーにとっては、十分なロープとなるはずです。