【发布时间】:2014-01-13 10:53:01
【问题描述】:
我在 Silverlight 中工作,但 WPF 解决方案可能也可以工作。
我的问题很简单。我有很多可以打开的模态子窗口,它们的通用菜单中有一个主页按钮。该按钮应该关闭所有子窗口并返回基本屏幕。我有几种不同类型的“通用子窗口”,它们托管了许多不同的用户控件,所以到目前为止,实现这一点的最简单方法是,当窗口成为焦点时,检查全局 ReturnToHome bool 是否为真,并且如果是,请关闭它。
这些我都试过了
private void ChildWindow_GotFocus(object sender, RoutedEventArgs e)
{
if (CommonResources.ReturnToHome) DialogResult = false;
}
private void ChildWindow_MouseEnter(object sender, MouseEventArgs e)
{
if (CommonResources.ReturnToHome) DialogResult = false;
}
private void ChildWindow_IsEnabledChanged(object sender, DependencyPropertyChangedEventArgs e)
{
if (CommonResources.ReturnToHome) DialogResult = false;
}
问题是,GotFocus 在我真正点击窗口之前不会触发。 MouseEnter 稍微好一点,但在我移动鼠标之前不会触发。 IsEnabledChanged 永远不会触发,因为子窗口不会禁用任何东西。检查每个子窗口关闭时是否已单击 Home 并不容易,因为您可以打开子窗口的位置数量众多,其中有几个嵌套在用户控件中,我什至无法轻松访问 @ 987654326@。知道我该怎么做吗?
另外我应该注意,我希望每个窗口一个一个地关闭,从上到下,因为每个关闭的窗口都会进行自己的验证,以查看它是否应该在关闭之前警告用户(让用户选择取消关闭)
【问题讨论】:
标签: c# wpf silverlight