2010-02-03 18 views
9

Ho un elemento posizionato su Canvas utilizzando le proprietà allegate Canvas.Top e Canvas.Left. Quindi utilizzando animazioni l'elemento viene spostato diverso insieme di coordinate, in questo modo:Come gestisco Canvas.Top change event in WPF?

DoubleAnimation left = new DoubleAnimation(oldLeft, newLeft); 
DoubleAnimation top = new DoubleAnimation(oldTop, newTop); 

element.BeginAnimation(Canvas.LeftProperty, left); 
element.BeginAnimation(Canvas.TopProperty, top); 

C'è un modo per ricevere gli eventi ogniqualvolta Canvas.Top o Canvas.Left è cambiato? Preferibilmente senza relazione con l'animazione.

risposta

19

Una lattina catch attached property changed event utilizzando DependencyPropertyDescriptor s' AddValueChanged metodo:

var descriptor 
    = DependencyPropertyDescriptor.FromProperty( 
     Canvas.LeftProperty, typeof(YourControlType) 
    ); 
descriptor.AddValueChanged(this, OnCanvasLeftChanged); 
Problemi correlati