0

基本的な C# WPF TreeView がありますが、展開/折りたたみアイコンが三角形であることが気に入らず、代わりにプラス/マイナス アイコンを使用したいと考えています。

この質問から、アプリケーションの Windows テーマを設定できることに気付きました。それはuxtheme.dllを使用して Vista/7 テーマに変更します。変更された TreeView コントロールを使用している xaml ファイルの行?

4

2 に答える 2

2

UxTheme.dll は、Windows クロムの一部 (ウィンドウの境界線やタイトルバーなど) やカスタム要素 (スタート メニューやタスクバーなど) に加えて、コモン コントロール ライブラリを使用してアプリケーションにテーマ サービスを提供します。UxTheme.dll は 2001 年に Windows XP で導入されましたが、提供されるサービスは Windows のバージョンによって異なります。

WPF はテーマに UxTheme.dll を使用しません。WPF のすべての「ビジュアル スタイル」は、実際には、XP の「Luna」(XP の Fischer-Price テーマ)、XP の「Royale」(MCE2005)、および Vista/7 Aero のベクター グラフィックスの再実装です。スタイル。さらに、WPF は Common Controls ライブラリも使用せず、すべての主要な Windows コントロールの 100% 管理された再実装を備えています。これが、WPF アプリが Windows で不気味の谷に陥る傾向がある理由です。ネイティブ アプリケーションのように見えますが、そうではありませんそれらについて正しい。

私自身は WPF の専門家ではありませんが、特定の要素のレンダリングをオーバーライドできることは理解していますが、サブクラス化せずにこれを実行できるかどうかはわかりません。

質問に直接答えなくて申し訳ありませんが、有益な洞察を提供できれば幸いです。

于 2012-06-26T20:00:00.917 に答える
1

残念ながら、これには TreeView のデフォルト スタイルとコントロール テンプレートをオーバーライドする必要があると思います。MSDN へのリンクは次のとおりです: http://msdn.microsoft.com/en-us/library/ms752048.aspxPath x:Name="Collapsed"およびPath x:Name="Expanded"を検索すると、このように矢印が描画されます。

Path 要素を各状態の Image と交換することで、これをオーバーライドできます。または、Path 要素を使用して、必要な + - 効果に似たものを描画することもできます。

于 2012-06-26T20:26:46.690 に答える