2017-10-19 9 views
0

ListViewには、カスタムItemTemplateアイテムがあります。 選択のために視覚効果を削除または変更したいと考えています。カスタムWPFリストビューから選択ハイライトを削除します。

は、これまでのところ、私は私のListViewにカスタムItemContainerStyleをassgining試してみました:

<ListView x:Name="DispList" ItemContainerStyle="{StaticResource MySty}" ItemTemplate="{StaticResource Mine}"> 

</ListView> 

と資源の下で、次のようにスタイルを定義する:

残念ながら
<Style TargetType="{x:Type ListViewItem}" x:Key="MySty"> 
     <Style.Resources> 
      <SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}" Color="Transparent"/> 
     </Style.Resources> 
</Style> 

を、これは動作しません。私は何が欠けていますか?

答えて

1

システムカラーをオーバーライドするこの方法は、Windows 8以降では機能しません。 ListViewItemコンテナのControlTemplateを変更する必要があります。

を参照してください:ListView Selected Item Style Override

例:右方向に向いため

<ListView> 
    <ListView.ItemContainerStyle> 
     <Style TargetType="{x:Type ListViewItem}"> 
      <Setter Property="Template"> 
       <Setter.Value> 
        <ControlTemplate TargetType="{x:Type ListBoxItem}"> 
         <Border x:Name="RootBorder"> 
          <ContentPresenter/> 
         </Border> 
         <ControlTemplate.Triggers> 
          <Trigger Property="IsMouseOver" Value="True"> 
           <Setter TargetName="RootBorder" Property="BorderBrush" Value="Red"/> 
           <Setter TargetName="RootBorder" Property="BorderThickness" Value="1"/> 
          </Trigger> 
          <!--<Trigger Property="IsSelected" Value="True"> 
           <Setter TargetName="RootBorder" Property="Background" Value="LightBlue"/> 
          </Trigger>--> 
         </ControlTemplate.Triggers> 
        </ControlTemplate> 
       </Setter.Value> 
      </Setter> 
     </Style> 
    </ListView.ItemContainerStyle> 
    <ListViewItem>123</ListViewItem> 
    <ListViewItem>456</ListViewItem> 
    <ListViewItem>789</ListViewItem> 
</ListView> 
+0

おかげで、しかし、あなたはControlTemplate' '下のプロパティが視覚的な選択の効果に対応してどのような手の込んだしてくださいだろうか?申し訳ありませんが、選択の可視性を無効にしたいだけです。 –

+0

私はあなたが望むものを得ることができる例を加えて私の答えを修正しました。 – Iron

関連する問題