2011-11-10 5 views
0

Ceci est défini dans App.xaml l'intérieur <Application.Resources>:événement IsMouseOver défini dans un style ne se déclenche pas

<Style x:Key="borderStyle" TargetType="Border"> 
    <Style.Triggers> 
     <Trigger Property="IsMouseOver" Value="True"> 
      <Setter Property="BorderBrush" Value="Red" /> 
     </Trigger> 
    </Style.Triggers> 
</Style> 

Et je l'utilise ici à l'intérieur Window1.xaml:

<ListBox Name="listView1" ItemsSource="{Binding}" Background="Black" > 
      <ListBox.ItemsPanel> 
       <ItemsPanelTemplate> 
        <WrapPanel Width="{Binding (FrameworkElement.ActualWidth), RelativeSource={RelativeSource AncestorType=ScrollContentPresenter}}" Orientation="Horizontal" ItemWidth="150" ItemHeight="150" /> 
       </ItemsPanelTemplate> 
      </ListBox.ItemsPanel> 
      <ListBox.ItemTemplate> 
       <DataTemplate> 
        <StackPanel> 
         <Border BorderThickness="5" BorderBrush="DarkGray" Style="{StaticResource borderStyle}"> 
          <Image Width="120" Height="120" Stretch="Fill" Source="{Binding Image}" /> 
         </Border> 
         <TextBlock FontFamily="Verdana" Foreground="Orange" Text="{Binding Title}" /> 
        </StackPanel> 
       </DataTemplate> 
      </ListBox.ItemTemplate> 
     </ListBox> 

Mais cela ne fonctionne pas, quand je souris dessus, la bordure ne change pas la couleur.

Qu'est-ce que je fais mal?

Merci.

Répondre

3

Vous remplacez le déclencheur si vous définissez la propriété directement dans la bordure.

Supprimer BorderBrush="DarkGray" de cette ligne

<Border BorderThickness="5" BorderBrush="DarkGray" Style="{StaticResource borderStyle}"> 

il ressemble à ce

<Border BorderThickness="5" Style="{StaticResource borderStyle}"> 

et ajouter un setter à votre style

<Style x:Key="borderStyle" TargetType="Border"> 
    <Setter Property="BorderBrush" Value="DarkGray" /> 
    <Style.Triggers> 
     <Trigger Property="IsMouseOver" Value="True"> 
      <Setter Property="BorderBrush" Value="Red" /> 
     </Trigger> 
    </Style.Triggers> 
</Style> 

En règle générale: toutes les propriétés qui devrait être modifié par les déclencheurs doivent être définis en tant que setters dans le style.

+0

Oui, c'était ça, merci pour la réponse. – Kobe

Questions connexes