我在Silverlight中创建了一个用户控件,所以现在我可以在任何我想要的地方多次重复使用它。此控件还使用弹出窗口。打开弹出窗口时,我以编程方式设置其位置,使其看起来像是固定在控件上。但是当此弹出窗口已经可见并且用户更改了Internet Explorer窗口的大小时,将移动页面的争用并且不会移动弹出窗口。 [显然。]因此它看起来不再像控制器一样。怎么解决?要处理哪个事件?
我希望当用户更改窗口大小时会触发一些事件。或者甚至更好的事件可以在重新定位拥有控件时通知我,因此我知道控件的新位置(我需要知道以便计算弹出窗口的坐标)。由于我希望它作为用户控件工作,我更喜欢控件本身的本地事件(即不会弄乱任何全局页面/窗口的东西)。请帮我找到合适的活动。
更新:现在在我看来,我需要知道何时移动拥有控件。因为还有其他原因可以移动(除了上面提到的窗口大小的变化)。
答案 0 :(得分:1)
我认为您正在寻找SizeChanged事件。您可以订阅它以了解何时调整弹出窗口的大小。
如果您的控件因其他控件而移动,则可能无效。由于它可能不会调整大小,只需安排在新的位置。
如果这是一个问题,您可以使用LayoutUpdated来确定元素内是否有任何变化。为此,您需要将处理程序附加到RootVisual或元素上方。