2010-02-03 4 views
9

Mam element umieszczony na Canvas przy użyciu dołączonych właściwości Canvas.Top i Canvas.Left. Następnie za pomocą animacji element zostanie przeniesiony do innego zestawu współrzędnych, tak:Jak obsługiwać zdarzenie zmiany Canvas.Top w WPF?

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

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

Czy istnieje sposób, aby odbierać zdarzenia ilekroć Canvas.Top lub Canvas.Left się zmieniło? Najlepiej bez związku z animacją.

Odpowiedz

19

jedną puszkę catch attached property changed event pomocą DependencyPropertyDescriptor jest AddValueChanged metody:

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