silverlight - 需要知道用户何时调整窗口大小

标签 silverlight events silverlight-4.0 resize

我在 Silverlight 中创建了一个用户控件,所以现在我可以在任何我想要的地方多次重复使用它。此控件还使用弹出窗口。当弹出窗口打开时,我以编程方式设置它的位置,使其看起来像锚定在控件上。但是当这个弹出窗口已经可见并且用户改变了 Internet Explorer 窗口的大小时,页面的内容会被移动并且弹出窗口不会被移动。 [显然。]所以它看起来不再像锚定到控件了。如何解决?处理哪个事件?

我希望当用户更改窗口大小时会触发一些事件。或者甚至更好的事件可以在拥有控件重新定位时通知我,因此我知道控件的新位置(我需要知道该位置以计算弹出窗口的坐标)。因为我希望它作为用户控件工作,所以我更喜欢控件本身的本地事件(即,不要弄乱任何全局页面/窗口的东西)。请帮我找到合适的事件。

更新:在我看来,从字面上看,我需要知道何时移动拥有控件。因为它被移动也可能有其他原因(除了上面提到的窗口大小的变化)。

最佳答案

我想你正在寻找 SizeChanged事件。您可以订阅它以了解何时调整弹出窗口的大小。

如果您的控件因另一个控件而移动,这可能无济于事。由于它可能无法调整大小,只需安排在新位置即可。

如果这是一个问题,您可以使用 LayoutUpdated确定元素内部是否有任何变化。为此,您需要将处理程序附加到 RootVisual 或元素上方的东西。

关于silverlight - 需要知道用户何时调整窗口大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7098929/

相关文章:

c# - 在使用 C# 的 Windows 窗体应用程序中正确使用 OnClick 与 MouseClick 事件

c# - 序列化对象时如何忽略事件订阅者?

java - 使用参数在对象上调用非静态方法引用

silverlight - 如何在编程 XAML 定义中定义按钮单击处理程序

silverlight - 找不到包含 BusyIndi​​cator 的程序集

c# - 引用类型附加属性 (DependencyProperty) 何时发布?

c# - 在静态类中存储用户信息

silverlight - Silverlight 4 中的列表框禁用状态

c# - 反序列化键值对

silverlight - 使用 F# 和 Silverlight 的游戏 : Avoiding Mutable State