Compartir a través de


Cómo desencadenar una animación cuando un valor de propiedad cambia

En este ejemplo se muestra cómo usar un Trigger para iniciar un Storyboard cuando cambia el valor de una propiedad. Puede usar un Trigger dentro de un Style, ControlTemplate o DataTemplate.

Ejemplo

En el siguiente ejemplo se utiliza un Trigger para animar el Opacity de un Button cuando su propiedad IsMouseOver se convierte en 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>

Las animaciones aplicadas por los objetos de propiedad Trigger se comportan de forma más compleja que las animaciones EventTrigger o animaciones iniciadas mediante métodos Storyboard. Se "entregan" con animaciones definidas por otros Trigger objetos, pero se componen con EventTrigger animaciones desencadenadas por métodos y .

Consulte también