2008-08-22 29 views
10

WPFのアンチエイリアスcannot be turned offしかし、私は、WPFフォントがぼやけて見えなくても、それを削除したいと考えています。WPFアンチエイリアス回避策

1つの可能性は、.net 2.0コンポーネントを使用することです。これは、透明性機能とブレンドサポートが失われるようです。しかし、それを試みたことはありません。

誰でもこれに対応していますか?それからの任意の欠点?

答えて

3

はあなたがWPFウィンドウ/コントロールにWindowsFormsHost制御を入れてみましたありがとう!これにより、WPFはWinFormsコントロールをレンダリングできます。

更新日2012年11月:この質問と回答は4歳です。 Text rendering has since improved in WPF。 WinFormsコントロールをWPFアプリケーションに配置しないでください。それはフォントのレンダリングを修正するためのヒックな方法でした。もう必要はありません。

+7

この答えはWPFの現在の状態についてのボリュームを話します。それがVS2010で改善することを祈りましょう。 ;) –

+0

wtf、それは過剰です。 – paIncrease

+1

はい、そうですが、この質問は4歳以上です。それ以来、特にWPFのフォントレンダリングが改善されています。http://blogs.msdn.com/b/text/archive/2009/08/24/wpf-4-0-text-stack-improvements.aspx –

-3

ウィンドウのUI要素にUIElement.SnapsToDevicePixelsプロパティを使用してみてください。人々はそれがgraphics and linesのために一番うまくいくと報告する傾向がありますが、私はそれもテキストレンダリングの改良に気付きました。

+1

2つの同一のテキスト部分を直接比較することができ、SnapsToDevicePixelの設定に何の相違も見つけられませんでした。また、「ぼやけ」の背後にある技術的理由から判断すると、それがどのように役立つかは想像もできません。 –

1

SnapsToDevicePixelsはテキストレンダリングにはまったく影響しません。

0

描画するオブジェクトをオフセットします。アンチエイリアスしたくないオブジェクトは0.5pxだけオフセットします。これにより、描画エンジンは、の実際のピクセルに描画します(デフォルトではピクセルのの端にを描画するのではなく)。ピクセルのエッジで描画する場合、通常、周囲のピクセルにアンチエイリアスが発生します。

これはMacのQuarts drawingに似ています。

編集:申し訳ありませんが、私は質問を読んでいません。これはフォントでは機能しません。形状に対してのみ機能します。私は参考のためにここにコメントを残します。

1

MicrosoftはWPF Text Blog

物事は間違いなく.NET 4.0で改善されてきたここWPFでのレンダリングテキストに専用のブログを持っています。

9

アンチエイリアスは、次のオプションを使用してWPF 4.0を起動オフにすることができます。

TextOptions.TextFormattingMode="Display" 
+1

実際にはアンチエイリアスはオフになっていません。アンチエイリアスの設定とは異なる、より明確なバージョンです。 AliasedオプションはTextOptions.TextRenderingMode = "Aliased"です。 –