2015-10-31 1 views
0

J'ai réussi à créer un ListboxItemTemplate avec un chemin et un bloc de texte. J'ai défini les styles pour le chemin de sorte que lorsque la souris est terminée, les couleurs changent. Mon XAML ci-dessous est:IsMouseOver n'est pas déclenché dans Listbox ItemTemplate

<DataTemplate x:Key="WorkingFileTemplate"> 
     <Grid HorizontalAlignment="Left"> 
      <StackPanel Orientation="Horizontal" Height="Auto" ToolTip="{Binding Path}" HorizontalAlignment="Left"> 
       <Path x:Name="ButtonPath" Stroke="#FFEA3E3E" StrokeStartLineCap="Round" StrokeEndLineCap="Round" Stretch="Uniform" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" Margin="0,5.75,0,4.625" StrokeThickness="2.55" Width="11.25" Height="Auto" Data="M0,0 L25,25 M0,25 L25,0"> 
        <Path.Style> 
         <Style TargetType="Path"> 
          <Style.Triggers> 
           <Trigger Property="IsMouseOver" Value="True"> 
            <Setter Property="Stroke" Value="White" /> 
           </Trigger> 
           <Trigger Property="IsMouseOver" Value="False"> 
            <Setter Property="Stroke" Value="#FFEA3E3E" /> 
           </Trigger> 
          </Style.Triggers> 
         </Style> 
        </Path.Style> 
       </Path> 
       <TextBlock Text="{Binding Name}" TextTrimming="CharacterEllipsis" Margin="5,2,0,0" TextOptions.TextFormattingMode="Display" VerticalAlignment="Top" HorizontalAlignment="Stretch" FontSize="13.333" Foreground="#FFC9C9C9"/> 
      </StackPanel> 
     </Grid> 
</DataTemplate> 

Pourquoi ça ne marche pas quand je passe la souris sur la souris? Il stimule ne s'active pas.

Répondre

2

Vous devrez peut-être utiliser un ControlTemplate.Trigger. Ici, j'ai ajouté un bouton et j'ai un ControlTemplate.

<Button> 
    <Button.Template> 
      <ControlTemplate> 
       <Path x:Name="ButtonPath" Stroke="#FFEA3E3E" StrokeStartLineCap="Round" StrokeEndLineCap="Round" Stretch="Uniform" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" Margin="0,5.75,0,4.625" StrokeThickness="2.55" Width="11.25" Height="Auto" Data="M0,0 L25,25 M0,25 L25,0"> 
       </Path> 
        <ControlTemplate.Triggers> 
         <Trigger Property="IsMouseOver" Value="True"> 
          <Setter TargetName="ButtonPath" Property="Stroke" Value="Blue" /> 
         </Trigger> 
         <Trigger Property="IsMouseOver" Value="False"> 
          <Setter TargetName="ButtonPath" Property="Stroke" Value="#FFEA3E3E" /> 
         </Trigger> 
         </ControlTemplate.Triggers> 
       </ControlTemplate> 
    </Button.Template> 
</Button> 
+0

Oui! Ça a marché. Merci beaucoup. – Zer0

+0

Cela ne fonctionnait pas parce que j'avais besoin de quelque chose comme un bouton? – Zer0

+0

@ F4z Quelque chose comme ça. En d'autres termes, nous devons utiliser ControlTemplate.Triggers pour cette exigence et nous pouvons le faire dans Button. Mais il peut être fait pour beaucoup plus de contrôles pas seulement le bouton. – tgpdyk