【发布时间】:2021-12-08 13:58:01
【问题描述】:
我有一个我正在尝试解决的问题。我有两个 WPF 窗口。这些窗口包含内容的页面。我的问题不是导航页面,而是窗口到窗口。下面是代码示例:
LoginPortal Design
<Grid>
<Frame x:Name="MainFrame" NavigationUIVisibility="Hidden"/>
</Grid>
LoginPortal Code
public LoginPortalMain()
{
InitializeComponent();
MainFrame.Navigate(new Uri("/Pages/LoginPortal.xaml", UriKind.RelativeOrAbsolute));
}
这是我的登录门户,包含 4 个按钮。每个按钮都会打开包含多个页面的第二个窗口。
private void BtnSales_Click(object sender, RoutedEventArgs e)
{
var w = Application.Current.Windows[0];
w.Hide();
MainWindow mn = new MainWindow();
mn.Content = new SalesPage();
mn.Show();
}
单击此按钮时,它会打开第二个 WPF 窗口,该窗口包含多个页面。导航没有问题。当我从 MainWindow 连接 Closing 事件以返回 LoginPortalMain 时,问题就开始了
private void Window_Closing(object sender, System.ComponentModel.CancelEventArgs e)
{
LoginPortalMain lgm = Application.Current.MainWindow as LoginPortalMain;
lgm.Show();
}
然后它又回到起点。现在我的问题是如果我再次点击同一个按钮。它只是复制了一切。然后在关闭任何东西时,它只会添加新窗口。如果我随后退出任何窗口,则会在下图中引发错误。我的问题是,有没有办法在 MainWindow 关闭后处理导航。因此,一旦您第二次关闭 mainWindow,就没有重复的窗口。我以前在单个窗口上使用过导航,但在多个窗口上没有。
我可能不得不重新考虑整个结构并使用自定义 UserControls 并找出从 Pages 到 UserControls 的动画序列。但是,我们将不胜感激。
【问题讨论】:
标签: c# wpf navigation