2012-01-28 13 views
6

Ho ottenuto il mio animazione per funzionare innescato da una proprietà nel mio ViewModel. Se imposto il mio TargetProperty su Width, il codice seguente funziona effettivamente per far crescere l'immagine.Animazione dell'elemento WPF in XAML utilizzando la proprietà associata?

Successivamente, volevo effettivamente spostare l'immagine su e giù. Per fare ciò, ho aggiunto un componente Canvas alla mia immagine, per poter animare in base alla proprietà Canvas.Top. L'impostazione Canvas.Top sull'immagine si sposta dove voglio.

Tuttavia, se ho impostato la mia StoryBoard.TargetProperty-Canvas.Top, ottengo un errore:

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> 

È il mio approccio totalmente off, o solo una questione di trovare il Attached proprietà?

+2

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

risposta

12

ha scavato intorno allo Property Path Syntax. e la soluzione era in realtà semplice .. Necessario aggiungere parentesi "(Canvas.Top)".

L'animazione non è così liscia come vorrei ... ma almeno adesso funziona.

+0

+1 Stavo per pubblicarlo. –

Problemi correlati