Compartir a través de


Cómo: Activar una animación al cambiar el valor de una propiedad

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

Ejemplo

En el ejemplo siguiente se usa Trigger para animar la propiedad Opacity de 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 manera más compleja que las animaciones EventTrigger o las animaciones que se inician mediante métodos Storyboard. "Entregan" con animaciones definidas por otros objetos Trigger, pero componen con EventTrigger y animaciones desencadenadas por métodos.

Vea también