如何在Silverlight中跟踪元素的位置

时间:2010-07-28 03:24:41

标签: silverlight

我是Silverlight编程新手,DependencyProperty对我来说还是比较新的,导致以下问题:

我想附加一个事件,当Canvas.LeftProperty Canvas.TopProperty更改为UIElement时(在我的情况下为UserControl)。

例如,我可以执行以下操作:

        source.SizeChanged += delegate
            {
                target.Width = source.Width;
                target.Height = source.Height;
            };

但我无法找到类似的位置事件。这甚至可能吗?

1 个答案:

答案 0 :(得分:1)

元素通常不知道它在WPF布局系统中的位置。父元素(在您的情况下,Canvas)负责布局元素,元素只负责根据布局容器的约束来调整自身大小。

话虽如此,您可以在元素上使用LayoutUpdated事件。最好在面板上设置它并将其用作触发器来重新扫描子项的属性,因为LayoutUpdated事件(根据文档)总是将空引用传递给sender参数。