2012-03-08 9 views
9

下にリンクされている画像で、選択した項目の枠線の外観を変更したいとします。選択したListViewItemをWindows 8でスタイリングするCP

enter image description here

私はすでにmsdn.comに、インターネット上の周りを探してきたが、私は便利な何も見つからなかっました。

どうすればいいですか?

+0

WPFまたはMetro XAMLアプリケーションを使用していますか?それらは完全に別々のフレームワークですが、両方でタグ付けしました。 –

+0

Metro XAMLアプリを使用しています。 – t4nky

答えて

16

選択外観は、ListViewItemのControlTemplateの一部です。 ListView全体のテンプレートを変更するには、ItemContainerStyleを使用して各アイテムにスタイルを適用します。各アイテムには、変更されたテンプレートのバージョンを含めることができます。

<ListView> 
    <ListView.ItemContainerStyle> 
    <Style TargetType="ListViewItem"> 
     <Setter Property="Template"> 
     <Setter.Value> 
      <ControlTemplate TargetType="ListViewItem"> 
      ... 
      </ControlTemplate> 
     </Setter.Value> 
     </Setter> 
    </Style> 
    </ListView.ItemContainerStyle> 
</ListView> 

のListViewItemのデフォルトのテンプレートはそうなるべくデフォルト動作の多くを維持し、あなたに良い出発点を与えるために、それはあなたのためのコピーを作成するためにブレンドを使用するのが最も簡単ですかなり複雑です。ブレンド中

、あなたのListViewコントロールを右クリックして選択します。

編集、追加テンプレート - >編集生成されたアイテムのコンテナ - >編集Aのコピー...

、それはあなたのためにスタイルを作成します。デフォルトのテンプレートが記入された上記のフォームで表示されます。選択表示では、テンプレート内のいくつかの異なる要素を使用して変更することができます。これらはブレンドのステートパネルで選択状態を選択し、 [オブジェクト]パネルに表示されます。

+0

ありがとう、これはまさに私が探していたものでした。私は、Visual Studio用のBlendを使ってこのことを手助けすることを忘れています。 –

2

私は他の人に役立つかもしれない別の解決策を見つけました:特定のブラシリソースを無効にするApp.xaml。これは、任意の既定のスタイルをクローニングせずに動作し、同じように簡単です:ListViewItem styles and templates:もちろん

<SolidColorBrush x:Key="ListViewItemSelectedBackgroundThemeBrush" Color="myColor1"/> 
<SolidColorBrush x:Key="ListViewItemPointerOverBackgroundThemeBrush" Color="myColor2"/> 

、上書きすることができ、それらのリストはここで見つけることができますより多くの茂みがあります。

この方法では、アプリケーション内のすべてのListViewの外観が変更されることに注意してください。

関連する問題