我是Silverlight编程新手,DependencyProperty
对我来说还是比较新的,导致以下问题:
我想附加一个事件,当Canvas.LeftProperty
Canvas.TopProperty
更改为UIElement
时(在我的情况下为UserControl
)。
例如,我可以执行以下操作:
source.SizeChanged += delegate
{
target.Width = source.Width;
target.Height = source.Height;
};
但我无法找到类似的位置事件。这甚至可能吗?
答案 0 :(得分:1)
元素通常不知道它在WPF布局系统中的位置。父元素(在您的情况下,Canvas)负责布局元素,元素只负责根据布局容器的约束来调整自身大小。
话虽如此,您可以在元素上使用LayoutUpdated事件。最好在面板上设置它并将其用作触发器来重新扫描子项的属性,因为LayoutUpdated事件(根据文档)总是将空引用传递给sender参数。