2017-10-19 5 views
0

J'ai un ListView avec personnalisé ItemTemplate pour les articles. Je souhaite supprimer ou modifier l'effet visuel pour la sélection.Supprimer la sélection en surbrillance de personnalisé WPF ListView

Jusqu'à présent, j'essayé assgining une coutume ItemContainerStyle à mon ListView:

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

</ListView> 

Et en ressources, définir le style comme suit:

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

Malheureusement, cela ne fonctionne pas. Qu'est-ce que je rate?

Répondre

1

Cette approche consistant à tenter de remplacer les couleurs du système ne fonctionne pas sous Windows 8 et versions ultérieures. Vous devez modifier le ControlTemplate du conteneur ListViewItem.

Se reporter à: ListView Selected Item Style Override

Un exemple:

<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

Merci de remarquer dans la bonne direction, mais pourriez-vous s'il vous plaît préciser quelles sont les propriétés sous 'ControlTemplate' correspondent à l'effet de sélection visuelle? Désolé, je veux juste désactiver la visibilité de la sélection. –

+0

J'ai modifié ma réponse en ajoutant un exemple qui peut réaliser ce que vous voulez. – Iron