2010-02-03 7 views
9

Tengo un elemento posicionado en Canvas usando las propiedades adjuntas Canvas.Top y Canvas.Left. Luego, utilizando animaciones el elemento se mueve a un conjunto diferente de coordenadas, así:¿Cómo manejo el evento de cambio Canvas.Top en WPF?

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

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

¿Hay una manera de recibir eventos cada vez que se cambia o Canvas.TopCanvas.Left? Preferiblemente sin relación con la animación.

Respuesta

19

Una lata catch attached property changed event usando DependencyPropertyDescriptor 's AddValueChanged método:

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