2012年4月5日木曜日

WPF アプリケーションパフォーマンス

WPF アプリケーションを開発していて、クライアントによって極端にパフォーマンスが下がることがあります。調べてみると、色々要因はあるようですが、古いビデオドライバなためにハードウェアレンダリングできなくて、ソフトウェアレンダリングするからっていうのがありました。

グラフィックスの描画層
http://msdn.microsoft.com/ja-jp/ms742196.aspx
→ 「描画層の定義」に説明が。ハードウェアレンダリングはここを・・・。

しかも、.NET Framework 4 では DirectX 7.0 や 8.0 のグラフィックカードではソフトウェアレンダリングになるらしい・・・。





他にもこういうところを読みました ↓

ハードウェアアクセラレーション
http://ja.wikipedia.org/wiki/%E3%83%8F%E3%83%BC%E3%83%89%E3%82%A6%E3%82%A7%E3%82%A2%E3%82%A2%E3%82%AF%E3%82%BB%E3%83%A9%E3%83%AC%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3

Software Rendering Usage in WPF(英語)
http://blogs.msdn.com/b/jgoldb/archive/2010/06/22/software-rendering-usage-in-wpf.aspx

Important FAQ questions for WPF and Silverlight - How does hardware acceleration work with WPF?(英語)
http://www.codeproject.com/Articles/34433/21-Important-FAQ-questions-for-WPF-and-SilverLight#How%20does%20hardware%20acceleration%20work%20with%20WPF

WPF コントロールにツールチップを表示

WPF のコントロールにツールチップを表示するには、FrameworkElement クラスの Tooltip プロパティを使います。 Object 型なので、単純なテキスト以外にも色々なオブジェクトを配置することができます。 2つ目の Button コントロールでは、ツールチップに TextBlock を入れて折り返し表示してみました。

<Button Content="マウスをホバーして" Height="23" HorizontalAlignment="Left" Margin="10,10,0,0" Name="button1" VerticalAlignment="Top" Width="195">
    <ToolTipService.ToolTip>
        <ToolTip Content="簡単なツールチップ"/>
    </ToolTipService.ToolTip>
</Button>
<Button Content="マウスをホバーして" Height="23" HorizontalAlignment="Left" Margin="10,43,0,0" Name="button2" VerticalAlignment="Top" Width="195">
    <ToolTipService.ToolTip>
        <TextBlock Text="折り返し表示するツールチップ-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------折り返し表示するツールチップ" TextWrapping="Wrap"/>
    </ToolTipService.ToolTip>
</Button>

MSDN - FrameworkElement.ToolTip プロパティ
http://msdn.microsoft.com/ja-jp/library/system.windows.frameworkelement.tooltip%28v=vs.100%29.aspx