Procedura: attivare un'animazione quando il valore di una proprietà viene modificato

In questo esempio viene illustrato come utilizzare un Trigger oggetto per avviare un Storyboard oggetto quando viene modificato un valore di una proprietà. È possibile usare un oggetto all'interno di Trigger un Styleoggetto , ControlTemplateo DataTemplate.

Esempio

Nell'esempio seguente viene utilizzato un Trigger oggetto per animare l'oggetto Opacity di quando Button la relativa IsMouseOver proprietà diventa true.

<!-- PropertyTriggerExample.xaml
     Shows how to use property triggers to start animations. -->
<Page
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  WindowTitle="Animate Properties with Storyboards">
  <Page.Resources>
  
    <Style x:Key="PropertyTriggerExampleButtonStyle" TargetType="{x:Type Button}">
      
      <Setter Property="Opacity" Value="0.25" />
      
      <Style.Triggers>
        <Trigger Property="IsMouseOver" Value="True">

          <Trigger.EnterActions>
            <BeginStoryboard>
              <Storyboard>
                <DoubleAnimation Storyboard.TargetProperty="Opacity"
                  To="1" Duration="0:0:1" />
              </Storyboard>
            </BeginStoryboard>
          </Trigger.EnterActions>
          <Trigger.ExitActions>
            <BeginStoryboard>
              <Storyboard>
                <DoubleAnimation Storyboard.TargetProperty="Opacity"
                  To="0.25" Duration="0:0:1" />
              </Storyboard>
            </BeginStoryboard>
          </Trigger.ExitActions>          
        </Trigger>               
      </Style.Triggers>    
    </Style>
  </Page.Resources>

  <StackPanel Margin="20">

    <Button Style="{StaticResource PropertyTriggerExampleButtonStyle}">
      Move the mouse over me.
    </Button>

  </StackPanel>
</Page>

Le animazioni applicate dagli oggetti proprietà Trigger si comportano in modo più complesso rispetto EventTrigger alle animazioni o alle animazioni avviate usando Storyboard metodi. Essi "handoff" con animazioni definite da altri Trigger oggetti, ma compongono con EventTrigger e animazioni attivate dal metodo.

Vedi anche