Freigeben über


Vorgehensweise: Auslösen einer Animation, wenn sich ein Eigenschaftswert ändert

In diesem Beispiel wird gezeigt, wie man ein Trigger verwendet, um ein Storyboard zu starten, wenn sich ein Eigenschaftswert ändert. Sie können ein Trigger innerhalb eines Style, ControlTemplate oder DataTemplate verwenden.

Beispiel

Im folgenden Beispiel wird eine Trigger verwendet, um den Opacity eines Button zu animieren, wenn seine IsMouseOver-Eigenschaft true wird.

<!-- 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>

Animationen, die von Eigenschaftsobjekten Trigger angewendet werden, verhalten sich komplexer als EventTrigger Animationen oder Animationen, die mit Storyboard Methoden begonnen haben. Sie übergeben mit Animationen, die von anderen Trigger-Objekten definiert wurden, aber in Verbindung mit EventTrigger und durch Methoden ausgelösten Animationen.

Siehe auch