WPF中使窗体关闭按钮与自定义的退出按钮行为一致的做法 |
您所在的位置:网站首页 › wpf点击按钮跳转页面 › WPF中使窗体关闭按钮与自定义的退出按钮行为一致的做法 |
在开发中,我们经常需要窗体的关闭按钮(右上角的叉叉)与我们的自定义退出按钮具有相同的执行行为。这时我们可以按照本文所说的方法来实现。
问题描述: 建立WPF窗体应用程序,运行程序后,界面如下所示。 在界面上修改示例数据,当示例数据发生变更(不再为“0”时即发生变更)时,点击“退出”按钮 ,必须弹出“是否保存”的提示框(如下图所示)。
点击“是”,保存并退出。 点击“否”,不保存直接退出。 点击“取消”,回到画面不退出。
要实现上面这点,很简单,在退出按钮的Click事件中增加相应的控制代码即可以实现(代码如下所示)。 private void Button_Close_Click(object sender, RoutedEventArgs e) { if (!this.TextBox_ExpData.Text.Equals("0")) { MessageBoxResult result = MessageBox.Show("数据有变更,是否保存数据变更?", "WPF实害例", MessageBoxButton.YesNoCancel, MessageBoxImage.Question); if (result == MessageBoxResult.Yes) { MessageBox.Show("数据被保存!"); Application.Current.MainWindow.Close(); } else if (result == MessageBoxResult.No) { Application.Current.MainWindow.Close(); } else { return; } } }而我们这里需要实现的是:点击窗口右上角的叉叉时,也能弹出“保存变更”的提示框。但是默认情况下,点击叉叉是不作任何操作直接关闭窗体的。我们可以按照下面的做法来实现。 首先给窗体的Closing事件指定相应的方法,该方法实现“保存变更提示”的功能。 给窗体的Closing事件指定方法可以直接在代码中实现: 也可以在窗体的属性窗口中实现: 接下来,实现方法MainWindow_Closing。 private void MainWindow_Closing(object sender, System.ComponentModel.CancelEventArgs e) { if (!this.TextBox_ExpData.Text.Equals("0")) { MessageBoxResult result = MessageBox.Show("数据有变更,?是否保存数据变更?", "WPF实害例", MessageBoxButton.YesNoCancel, MessageBoxImage.Question); if (result == MessageBoxResult.Yes) { MessageBox.Show("数据被保存。"); e.Cancel = false; } else if (result == MessageBoxResult.No) { e.Cancel = false; } else { e.Cancel = true; } } else { e.Cancel = false; } }这样一来,点击叉叉便可以和点击退出按钮具有一样的行为了。 最后得修改一下Button_Close_Click方法。 private void Button_Close_Click(object sender, RoutedEventArgs e) { Application.Current.MainWindow.Close(); }好了,就这样了。 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |