如何在WPF中处理Canvas.Top更改事件?
我在Canvas
使用附加属性Canvas.Top
和Canvas.Left
定位了一个元素。 然后使用动画将元素移动到不同的坐标集,如下所示:
DoubleAnimation left = new DoubleAnimation( oldLeft, newLeft ); DoubleAnimation top = new DoubleAnimation( oldTop, newTop ); element.BeginAnimation( Canvas.LeftProperty, left ); element.BeginAnimation( Canvas.TopProperty, top );
有没有办法在Canvas.Top
或Canvas.Left
被更改时接收事件? 优选地与动画无关。
可以使用DependencyPropertyDescriptor
的AddValueChanged
方法捕获附加属性更改事件 :
var descriptor = DependencyPropertyDescriptor.FromProperty( Canvas.LeftProperty, typeof( YourControlType ) ); descriptor.AddValueChanged( this, OnCanvasLeftChanged );