wpf - WPF。嵌套模式对话框
问题描述
我在 WPF 应用程序中有几个窗口(MainWindow、Window1、Window2)每个窗口都有一个按钮,用于在模态模式下显示下一个窗口(MainWindow -> Window1 -> Window2)。就像是:
MainWindow 按钮处理程序
Visibility = Visibility.Hidden;
Window1 w = new Window1();
w.ShowDialog();
Visibility = Visibility.Visible;
Window1 按钮处理程序
Visibility = Visibility.Hidden;
Window2 w = new Window2();
w.ShowDialog();
Visibility = Visibility.Visible;
问题是 - 当 Window2 关闭时(Alt + F4),不仅 Window1 结束了它的“w.ShowDialog()”方法调用,而且 MainWindow 也结束了!当 Window2 关闭时 - 两个窗口(Window1 + MainWindow)同时变为可见!
为什么 MainWindow 变得可见,我该怎么做才能避免这种情况?
先感谢您!
解决方案
如果隐藏窗口,您不妨使用该Show()
方法并处理Closed
事件,而不是调用ShowDialog()
:
Visibility = Visibility.Hidden;
Window1 w = new Window1();
w.Closed += (ss, ee) => Visibility = Visibility.Visible;
w.Show();
这应该可以解决您的问题。
推荐阅读
- javascript - 使用 webpack 监视目录
- r - 绘制更平滑的多条线
- react-hooks - await 在 useEffect 中无法按预期工作,例如 react 中的 componentDidMount
- c# - C# 如何有条件地使用 AsParallel 或在运行时动态附加
- font-awesome - 4 个中的 2 个 Font Awesome 图标未显示
- javascript - 为什么我不能通过 Javascript 中的函数构造函数创建纯对象?
- python - 如何在 Keras Functional API 中创建具有多个共享层的模型?
- android - android 上的音频信号处理 - 频率调制
- python - TypeError:输入数据不能是列表
- javascript - 如何使用中间件从 MongoDb 中删除孤立引用