App当前关机关闭窗口提示

本文关键字:窗口 提示 关机 App | 更新日期: 2023-09-27 17:52:16

我有一个wpf项目,它有几个窗口,当我从一个窗口导航到另一个窗口时,我只是隐藏一个窗口并创建其他实例,如果还没有创建,否则只是使它可见

在所有Windows中都有窗口关闭事件处理程序

 private void Window_Closing_1(object sender, CancelEventArgs e)
    {
         {
        string message = "You are trying to close window " + this.Name + " .Are you sure?";
        string caption = "Exit";
        MessageBoxButton buttons = MessageBoxButton.YesNo;
        MessageBoxImage icon = MessageBoxImage.Question;
        if (MessageBox.Show(message, caption, buttons, icon) == MessageBoxResult.Yes)
        {
            App.Current.Shutdown();
        }
        else
        {
         MessageBox.Show("Closing aborted");
        }
    }

但问题是这个事件存在于每个窗口中,所以当我关闭它时,其他窗口的许多其他不可见提示也会显示出来。如果我只关闭一个窗口,有没有办法避免其他提示?

App当前关机关闭窗口提示

您是否尝试在App.xaml中添加退出属性?

将是一个更好的解决方案,因为您只需要编写一次确认退出代码。关于窗口名称,你可以将sender强制转换为window以找出它的名称

在另一个类中创建一个静态方法来处理窗体的关闭。

public class X 
{
    private static bool isClosingHandled = false;
    public static void HandleClose()
    {
        //// app closing logic
        isClosingHandled = true;
    }
}
private void Window_Closing_1(object sender, CancelEventArgs e)
{
    X.HandleClose();   
}