2010-02-13 6 views
3

J'essaie de définir un style global pour toutes les zones de liste dans mon application. Voici le code xaml que j'ai utilisé. Ici j'ai essayé de déclencher une animation mais ça ne marche pas. Je veux juste une animation sur l'élément sélectionné. De l'aide?Animer l'élément sélectionné de la liste déroulante wpf

<Style TargetType="{x:Type ListView}"> 
    <Style.Setters> 
     <Setter Property="BorderThickness" Value="5" /> 
     <Setter Property="FontSize" Value="16" /> 
     <Setter Property="FontFamily" Value="Arial" /> 
     <Setter Property="ItemTemplate"> 
      <Setter.Value> 
       <DataTemplate x:Name="ListViewItemTemplate"> 
        <TextBlock Text="{Binding}" Padding="0,0,5,5"/> 
       </DataTemplate> 
      </Setter.Value> 
     </Setter> 
     <Setter Property="Template"> 
      <Setter.Value> 
       <ControlTemplate> 
        <ControlTemplate.Triggers> 
         <EventTrigger RoutedEvent="ListViewItemBase.Selected"> 
          <BeginStoryboard> 
           <Storyboard TargetProperty="Color"> 
            <ColorAnimation To="#FFFF0000" Duration="0:0:1" AutoReverse="true" /> 
           </Storyboard> 
          </BeginStoryboard> 
         </EventTrigger> 
        </ControlTemplate.Triggers> 
       </ControlTemplate> 
      </Setter.Value> 
     </Setter> 
    </Style.Setters> 
</Style> 

travail Version:

<Style TargetType="{x:Type ListView}"> 
<Style.Setters> 
    <Setter Property="BorderThickness" Value="5" /> 
    <Setter Property="FontSize" Value="16" /> 
    <Setter Property="FontFamily" Value="Arial" /> 
    <Setter Property="ItemTemplate"> 
     <Setter.Value> 
      <DataTemplate x:Name="ListViewItemTemplate"> 
       <TextBlock Text="{Binding}" Padding="0,0,5,5"/> 
      </DataTemplate> 
     </Setter.Value> 
    </Setter> 
    <Setter Property="ItemContainerStyle"> 
     <Setter.Value> 
      <Style> 
       <Style.Triggers> 
        <Trigger Property="ListViewItem.IsSelected" Value="True"> 
         <Trigger.EnterActions> 
          <BeginStoryboard> 
           <Storyboard Target="ListViewItem" TargetProperty="Background.Color"> 
            <ColorAnimation To="Red" Duration="0:0:0.5" AutoReverse="true" /> 
           </Storyboard> 
          </BeginStoryboard> 
         </Trigger.EnterActions> 
        </Trigger> 
       </Style.Triggers> 
      </Style> 
     </Setter.Value> 
    </Setter> 
</Style.Setters> 

Répondre

5

Créer ItemContainerStyle pour la zone de liste et et Ajouter un déclencheur pour ListBoxItem.IsSelected == Vrai

+0

Pouvez-vous expliquer un peu ? Des codes? – Amsakanna

+1

Au lieu de définir la propriété 'Template', définissez la propriété' ItemContainerStyle'. Créer un style là-dedans avec le déclencheur Jobi dit, puis appliquer votre animation lorsque le déclencheur est activé. –

+0

Merci, je vais essayer aujourd'hui et vous le faire savoir :) – Amsakanna