我有一个充当桌面游戏的项目。在这个棋盘游戏中,我有多个迷你游戏,用户可以玩(记忆游戏,井字游戏,扫雷。)我的问题是当询问用户是否要开始时,如何不关闭整个项目新游戏让他可以玩其他游戏。
我将棋盘游戏窗口作为基本窗口,在该窗口内我有游戏网格。
例如,当我赢得井字游戏时会弹出一个消息框,询问我是否要开始一个选项是和否的新游戏。但是,如果我选择“否”,它将关闭整个项目而不是停止玩井字游戏。
在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中的两行都被评论,因为他们关闭了整个项目,而不仅仅是井字游戏。
答案 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.
}