我的应用程序具有这样的性质,以至于我需要连续跳过许多窗口。从我的菜单窗口中,我需要打开另一个窗口(从选择中)并禁用或关闭菜单窗口。
我目前使用的是 window.show 然后 this.close() 方法来关闭菜单窗口。
前任:
private void MainMenuControl_Link1MouseDown(object sender, RoutedEventArgs e)
{
// Utilities
UtilitiesMenyWindow UtilitiesMenyWindow = new UtilitiesMenyWindow(); // Assign Variable to window
UtilitiesMenyWindow.Show(); // Open window
this.Close(); // close current window
}
然后在新窗口中,我只需使用相同的方法重新打开 MainMenu 窗口。
private void Utilities_Link3MouseDown(object sender, RoutedEventArgs e)
{
// Return to Main
MainMenuWindow MainMenu = new MainMenuWindow(); // Assign Variable to window
MainMenu.Show(); // Open Main window
this.Close(); // close login window
}
然后我还保留一个带有静态变量的公共变量类来存储所有窗口通用的所有变量。
所有这一切对我来说都很好,除了一个障碍。如果我要从另一个窗口(不是 MainWindow)调用 UtilitiesMenyWindow,它将返回到 MainMenu 而不是我打开它的窗口。
有没有一种更简单、更通用的方法可以返回打开辅助窗口的窗口,而不必告诉它自己关闭并打开特定窗口(在这种情况下,它是“硬编码”到 MainMenu)(显然我先打开然后关闭)
我正在查看 Unloaded 事件,但是如何让原始窗口保持隐藏状态,直到该事件发生,而不必坐在那里等待循环,这不是一个好主意。也许有人可以指导我将其设置为“触发”事件处理程序的自动事件,然后再激活前一个窗口?