2009-05-18 2 views
6

私はWPFでツリービューを持っています。私はtreeviewitemを選択すると、別の色が欲しい。ツリービューで選択した項目を色で強調表示するにはどうすればよいですか?

+5

私はこれが多かれ少なかれhttp://stackoverflow.com/questions/388232/の複製であると思います...その回答で使用したのと同じトリックがTreeViewに適用されます。 –

+0

@MattHamiltonとhevgenはどちらも正しいです。 Mattのリンクにあるコードサンプルを使用します。それはTreeViewsで正常に動作します。 OP、答えを受け入れてください。 – Heliac

答えて

-1

次のコードを試してください。それは動作するはずです。

<Style TargetType="{x:Type TreeViewItem}"> 
    <Style.Triggers> 
     <Trigger Property="IsSelected" Value="True"> 
      <Setter Property="Background" Value="Yellow"/> 
     </Trigger> 
    </Style.Triggers> 
</Style> 
9

TreeView.ItemContainerStyleでシンプルなトリガは、デフォルトのツリービューのテンプレートのために役立つことはできません。

標準テンプレートハイライトは、特定の要素の背景をツリービューテンプレート内で変更することによって行われます。この特定の要素は、TreeViewテンプレートが変更されていないプログラマにとってアクセスできません。デフォルトではリソースは、強調表示のためにこの要素の背景を設定するために使用されます。

ので、いくつかの方法があります

  1. 単純な(しかし、副作用の可能)キーを持つリソース再定義:ツリービューまたはItemsPanelテンプレートの{X静的SystemColors.HighlightBrushKey}と、
  2. TreeViewの完全なテンプレートを再定義します。
関連する問題