0

ここで同様の質問を見つけようとしましたが、何か違うものを見つけました。私は Windows でディスプレイ フォント スムージングを使用することを好みますが、Windows XP がディスプレイ フォントのエッジを滑らかにする方法が好きではありません。現在、表示フォントを滑らかにして、Windows用のSafariブラウザーでレンダリングされたテキストと非常によく似たGDI ++を使用しています(私の知る限り、Macユーザーではなく、MacOSへのネイティブアプローチです)。GDI++ は、私が使用するほぼすべてのアプリケーションで Safari と非常によく似たフォントを実際にレンダリングしますが、GDI++ が Visual Studio と Google Chrome をサポートしていない (できない?) ことを知ってがっかりしています。これらのアプリケーションは、表示フォントをレンダリングするために多少別の方法を使用していると思います (GDI O_o だけです。Windows フォント エッジのスムージング設定 [スムージングなし、標準または ClearType] を考慮していると思います)。私はそれに慣れていません。:(

これを明確にしてください。Visual Studio と Google Chrome で GDI++ を使用したいと思っています。おそらく、誰かがいくつかの回避策を使用しています(可能であれば確かに)。ありがとうございました。

4

1 に答える 1

4

私たちの尊敬すべき恩人によるこのブログ投稿は関連しています。GDI+ は確かに Apple のやり方で物事を行います。それは真の解像度に依存しないレンダリングを使用します。このためにかなり広くパンニングされたため、.NET 2.0 では TextRenderer クラスに置き換えられました。GDI DrawTextEx() 関数を使用してテキストを描画します。GDI+ がうまく機能しない例を示すために、次のサンプル Windows フォーム フォームを実行してみてください。

  public partial class Form1 : Form {
    public Form1() {
      InitializeComponent();
    }
    protected override void OnPaint(PaintEventArgs e) {
      e.Graphics.DrawString("Hiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii!", this.Font, Brushes.Black, 0, 0);
    }
  }

YMMV ですが、それが完全にひどいものに見えないマシンはまだありません。TextRenderer はその日を救った。

WPF が導入された .NET 3.0 まで。解像度に依存しないレンダリングに戻ります。生成された憎しみの量は驚くべきものでした。

簡単に言うと、大多数のユーザーは GDI テキスト レンダリングを好みます。または、少なくとも、理解できないときは非常に声高になります。Visual Studio と Chrome は、間違いなくテキスト出力に GDI を使用します。これは自分で簡単に変更できるものではありませんが、Chrome はオープン ソースです。

次のバージョンを待つだけです。Visual Studio 2010 は WPF を使用します。ベータ 1 では、ぼやけたテキストに対して多くの嫌悪感が生じました。ただし、WPF はファジーを制限するように調整されているため、好みに合わない可能性があります。

于 2009-12-28T11:07:31.773 に答える