2012-01-28 25 views
6

Obtuve mi animación activada por una propiedad en mi ViewModel. Si configuro mi TargetProperty en Width, el código siguiente realmente funciona para hacer crecer la imagen.¿Animar el elemento WPF en XAML usando la propiedad adjunta?

A continuación, quería mover la imagen hacia arriba y hacia abajo. Para hacer esto, agregué un componente Canvas alrededor de mi imagen, para poder animar basado en la propiedad Canvas.Top. Configuración Canvas.Top en la imagen lo mueve a donde quiero.

Sin embargo, si fijo mi StoryBoard.TargetProperty-Canvas.Top, me sale un error:

Cannot resolve all property references in the property path Canvas.Top.

<Style x:Key="LoadingImageAnimation" TargetType="{x:Type Image}"> 
    <Style.Triggers> 
    <DataTrigger Binding="{Binding IsLoading}" Value="True"> 
     <DataTrigger.EnterActions> 
     <BeginStoryboard> 
      <Storyboard> 
      <DoubleAnimation From="10" To="250" AutoReverse="True" Duration="0:0:30" 
          Storyboard.TargetProperty="Canvas.Top"/> 
      </Storyboard> 
     </BeginStoryboard> 
     </DataTrigger.EnterActions> 
    </DataTrigger> 
    </Style.Triggers> 
</Style> 

¿Es mi enfoque totalmente apagado, o simplemente una cuestión de encontrar la propiedad adjunta?

+2

Pruebe 'Storyboard.TargetProperty =" (Canvas.Top) "'. –

Respuesta

12

investigó un poco en Property Path Syntax. y la solución fue realmente simple. Necesario para agregar paréntesis "(Canvas.Top)".

La animación no es tan fluida como me gustaría ... pero al menos funciona ahora.

+0

+1 Solo iba a publicar eso. –

Cuestiones relacionadas