C#/ WPF:关闭当前窗口而不关闭整个项目

时间:2016-09-20 07:08:49

标签: c# wpf

我有一个充当桌面游戏的项目。在这个棋盘游戏中,我有多个迷你游戏,用户可以玩(记忆游戏,井字游戏,扫雷。)我的问题是当询问用户是否要开始时,如何不关闭整个项目新游戏让他可以玩其他游戏。

我将棋盘游戏窗口作为基本窗口,在该窗口内我有游戏网格。

例如,当我赢得井字游戏时会弹出一个消息框,询问我是否要开始一个选项是和否的新游戏。但是,如果我选择“否”,它将关闭整个项目而不是停止玩井字游戏。

在tic-tac-toe.cs我有这种关闭井字游戏的方法:

  internal void newGame(string message)
        {
            if(MessageBox.Show("Play Again?", message, MessageBoxButton.YesNo) == MessageBoxResult.Yes)
            {
                Clear(); // calls the method to clear buttons etc.
            }
            else
            {
                //Application.Current.MainWindow.Close();
                //Application.Current.Windows[Application.Current.Windows.Count - 1].Close();

            }
        }

正如你可以看到Else中的两行都被评论,因为他们关闭了整个项目,而不仅仅是井字游戏。

1 个答案:

答案 0 :(得分:1)

您可以覆盖主窗口的关闭事件:

private void Window_Closing(object sender, System.ComponentModel.CancelEventArgs e)
{
    //You can ask users to play new games, if they click close window (etc.)
    e.Cancel = true; //This will cancel the closing of main window.
    //You can now write logic to close your local windows (dispose objects of games) and show the main window.
}