しばやん雑記

ASP.NET とメイドさんが大好きなフリーランスのプログラマーのブログ

WPF 4.0 のテキスト表示

.NET 4.0 ベータ 2 が公開されたので、早速インストールして WPF Text Blog にあった挙動を確認していました。

Text clarity improvements

In previous versions of WPF, all text is formatted without specifically accounting for pixel boundaries. This approach provides uniform scalability and ensures that glyph outlines adhere to font specifications. Unfortunately, small text appears blurry when it is rendered across pixel boundaries, and this has affected our customers. In the past, we have only been able to say “we are working on a fix.” Now I can tell you that this is solved in WPF4.0!


As of Beta2, WPF provides developers with the ability to control how text is both formatted and rendered. Text can now be formatted to either strictly adhere to font specifications or fall on pixel boundaries. This new option allows text to be rendered more clearly at the slight expense of glyph shape and position.


The option to set the rendering mode for text (eg, aliased, grayscale, ClearType) is also conveniently exposed. In most situations ClearType is an obvious win; however ClearType can degrade the user experience on CRTs and for people whose eyes are color sensitive. In the past, WPF forced all apps to use ClearType. Now, developers can choose between two additional rendering modes.

New WPF 4.0 Features - WPF Text Blog - Site Home - MSDN Blogs

確認してみると、前々から気になっていた AllowsTransparency = True 時のテキスト品質がかなり向上していました。ClearType は半透明のサーフェスにレンダリングするのは不得意?で、3.5 SP1 などではグレースケールのアンチエイリアスにフォールバックしていました。
しかし .NET 4.0 では GDI を使ったときと同等の品質でレンダリングできるようになったらしいです。ビットマップフォントへのサポートもかなり改善されているので、個人的には WPF 4.0 で時間はかかりましたが普及するんじゃないかと思ってます。

WPF 3.5 SP1


WPF 4.0

WPF 3.5 SP1 はグレースケールアンチエイリアスなのに対して、WPF 4.0 は ClearType でレンダリングされていることが分かります。って、拡大画像を載せるべきでしたね……orz