【发布时间】:2016-04-17 09:50:01
【问题描述】:
我正在尝试创建一个带有多个窗口的 WPF 应用程序,但我对正确的执行方式感到有些困惑。我知道我需要保持主窗口打开才能运行程序,所以我为子窗口隐藏了这个。但是,当我想从一个子窗口切换到另一个子窗口时会出现问题,可以缩小到以下内容:如何在用户按下右上角的关闭按钮时捕获事件(似乎没有办法参考在 VB .net 中按下此按钮时)?
目前,我正在关闭当前窗口,然后创建下一个窗口的新实例以从一个窗口更改为另一个窗口,如下所示:
Private Sub btnContinue_Click(sender As Object, e As RoutedEventArgs) Handles btnContinue.Click
Dim wd As New NextWindow
Me.Close()
wd.ShowDialog()
End Sub
有一个退出按钮:
Private Sub btnExit_Click(sender As Object, e As RoutedEventArgs) Handles btnExit.Click
Me.Close()
End Sub
我在窗口关闭事件中有以下内容:
Application.Current.MainWindow.Show()
但是如何区分每个窗口右上角的退出按钮或继续按钮或默认关闭按钮?如果按下退出按钮或关闭按钮,我想关闭当前窗口,然后显示主窗口。如果按下继续按钮,我想关闭当前窗口,然后显示下一个窗口。
我希望这是有道理的。
【问题讨论】:
-
您是否考虑过在 WPF 中使用 Navigation framework 在页面之间导航?
-
我推荐你使用 Prism 框架。它为您管理所有这些工作。
-
不幸的是,我对导航框架或棱镜框架的了解不够,无法使用这些解决方案。导航框架看起来更像是浏览器,尽管它确实表示它可以在独立应用程序中使用。 Prism 看起来很丰富,可能适用于比我目前处理的更大的应用程序。肯定会在某个时候调查两者。现在,我已经解决了只是隐藏中间窗口,直到最后一个窗口完成,然后将它们全部关闭到主窗口。不理想,但我目前看到的最快的解决方案:)