Mic*_*nne 7 c# wpf attached-properties
如果附加属性发生变化,有没有办法获得变更通知?
一个简单的例子是一个Canvas与Rectangle在它.Rectange使用DepenendyProperties Canvas.Top和设置的位置Canvas.Left.我正在使用一个Adorner通过改变Canvas.Top和来移动矩形Canvas.Left.
<Canvas Width="500" Height="500" >
<Rectangle Width="40" Height="40" Canvas.Left="10" Canvas.Top="20" />
</Canvas>
Run Code Online (Sandbox Code Playgroud)
下一步是在两者之间创建一个箭头Rectangles.为了跟踪移动Rectangles,每当一个位置发生变化时,箭头必须得到一个变化通知Rectangle.如果我可以在附加属性Canvas.Top更改时获得更改通知,这将很容易.
谢谢你的帮助,迈克尔
Tho*_*que 17
你为什么不用绑定?这正是他们为......设计的......
如果由于某种原因,您无法使用绑定,则可以添加一个处理程序,以便在属性值更改时收到通知:
var topDescriptor = DependencyPropertyDescriptor.FromProperty(Canvas.TopProperty, typeof(Rectangle));
var leftDescriptor = DependencyPropertyDescriptor.FromProperty(Canvas.LeftProperty, typeof(Rectangle));
topDescriptor.AddValueChanged(rectangle, rectangle_PositionChanged);
leftDescriptor.AddValueChanged(rectangle, rectangle_PositionChanged);
...
private void rectangle_PositionChanged(object sender, EventArgs e)
{
...
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8883 次 |
| 最近记录: |