How do I handle Canvas.Top change event in WPF?

做~自己de王妃 提交于 2019-11-27 16:22:43

问题


I have an element positioned on Canvas using attached properties Canvas.Top and Canvas.Left. Then using animations the element is moved to different set of coordinates, like this:

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

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

Is there a way to receive events whenever Canvas.Top or Canvas.Left is changed? Preferably without relation to animation.


回答1:


One can catch attached property changed event using DependencyPropertyDescriptor's AddValueChanged method:

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


来源:https://stackoverflow.com/questions/2192612/how-do-i-handle-canvas-top-change-event-in-wpf

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!