Freigeben über


Wie man eine Animation auslöst, wenn sich ein Eigenschaftswert ändert

In diesem Beispiel wird gezeigt, wie Sie eine Trigger verwenden, um eine Storyboard zu initiieren, wenn sich der Wert einer Eigenschaft ändert. Sie können eine Trigger innerhalb eines Style, ControlTemplateoder DataTemplateverwenden.

Beispiel

Im folgenden Beispiel wird ein Trigger verwendet, um die Opacity eines Button zu animieren, wenn die Eigenschaft IsMouseOver zu truewird.

<!-- 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 auf Eigenschaften von Trigger Objekten angewendet werden, verhalten sich komplexer als EventTrigger Animationen oder Animationen, die mit Storyboard Methoden gestartet werden. Sie übergeben mit Animationen, die von anderen Trigger Objekten definiert wurden, komponieren jedoch mit EventTrigger und methodengetriggerten Animationen.

Siehe auch