トップ回答者
Windows 7 + WPF(.NET 4)のテキスト表示(ClearType)が有効にならない。

質問
-
ほぼ初期状態のソースにテキストブロックを追加しました。
<Window x:Class="MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Grid>
<TextBlock FontSize="9pt" TextOptions.TextRenderingMode="ClearType">abcdefg</TextBlock>
</Grid>
</Window>この状態であれば,問題なく"ClearType"が有効となります。
しかし,デザインの都合上,ウィンドウの設定を
WindowStyle="None" AllowsTransparency="True"
としたところ,"ClearType"の効果がなくなってしまいます。恐らく"Grayscale"で表示されているのではないかと思います。
WindowStyle="None" AllowsTransparency="True"
と設定した状態で"ClearType"表示するにはどうしたらよいでしょうか?
ご指導いただけますとありがたいのですが。
回答
すべての返信
-
>WPFのバージョンもWindowsのバージョンも記載がないので再現できませんが、
件名に「Windows 7 + WPF(.NET 4)」と書いたのですが,気づきにくかったでしょうかね。
失礼致しました。
TextOptions.TextFormattingMode="Display"
も試してみましたが,効果なしです。
WindowStyle="None" AllowsTransparency="True"
を指定しなければ,テキストの前後に黄色と青色が描画されてClearTypeが効いている事を確認できますが,
WindowStyle="None" AllowsTransparency="True"
を指定するとグレーによるスムージング処理となっています。
-
●Keiichi Oumi さま
WindowStyle="None" AllowsTransparency="True" RenderOptions.ClearTypeHint="Enabled"
とする事で同じようにClearTypeがかかる事を確認しました。
ありがとうございます。
●データくん さま
環境によっては起きない現象という事になりますね。少々驚きました。
DisableHWAccelerationはレジストリの設定ですよね。
申し訳ございませんが,今回は遠慮させていただきます。
- 編集済み VB User1 2012年8月30日 5:38
-
こんにちは。
レンダリング関連は全く未知の世界なのですが、
http://msdn.microsoft.com/ja-jp/library/ms748373.aspxを見ると、
「WPF では、ハードウェア ピクセルの代わりにデバイス非依存ピクセルを主要測定単位として用いた~」
との事なので、GDI系とWPFではレンダリングエンジンが違うのではないかって思えます。ブラウザのレンダリングエンジンって(おそらく)GDI系なのかなぁと。ChromとIEでもテキストの表示に関しては全然違ったりしますし…
ですので、「Windowsの表示と同じにする事」は難しいのかなぁって気がします。
「ClearTypeの調節」はわかりません。 orz