可以做分销的淘客网站,上虞市建设风机厂网站,龙岩本地论坛,广州网络营销公司推荐ShutdownMode枚举类型介绍
ShutdownMode是一个枚举类型#xff0c;它定义了WPF应用程序的关闭方式。这个枚举类型有三个成员#xff1a;
OnLastWindowClose#xff1a;当最后一个窗口关闭或者调用System.Windows.Application.Shutdown方法时#xff0c;应用程序会关闭。O…ShutdownMode枚举类型介绍
ShutdownMode是一个枚举类型它定义了WPF应用程序的关闭方式。这个枚举类型有三个成员
OnLastWindowClose当最后一个窗口关闭或者调用System.Windows.Application.Shutdown方法时应用程序会关闭。OnMainWindowClose当主窗口关闭或者调用System.Windows.Application.Shutdown方法时应用程序会关闭。OnExplicitShutdown只有当调用System.Windows.Application.Shutdown方法时应用程序才会关闭。
整理成表格如下所示
枚举成员含义OnLastWindowClose当最后一个窗口关闭或者调用System.Windows.Application.Shutdown方法时应用程序会关闭。OnMainWindowClose当主窗口关闭或者调用System.Windows.Application.Shutdown方法时应用程序会关闭。OnExplicitShutdown只有当调用System.Windows.Application.Shutdown方法时应用程序才会关闭。
实践
MainWindow的xaml如下
Window x:ClassApplicationShutdown.MainWindowxmlnshttp://schemas.microsoft.com/winfx/2006/xaml/presentationxmlns:xhttp://schemas.microsoft.com/winfx/2006/xamlxmlns:dhttp://schemas.microsoft.com/expression/blend/2008xmlns:mchttp://schemas.openxmlformats.org/markup-compatibility/2006xmlns:localclr-namespace:ApplicationShutdownmc:IgnorabledTitleMainWindow Height350 Width525 LoadedMainWindow_LoadedDockPanelStackPanel DockPanel.DockTop OrientationHorizontalLabel HorizontalAlignmentLeftShutdown Mode:/LabelComboBox HorizontalAlignmentLeft NameshutdownModeListBox //StackPanelStackPanel DockPanel.DockTop OrientationHorizontalLabel HorizontalAlignmentLeftApplication Exit Code (for explicit shutdown):/LabelTextBox HorizontalAlignmentLeft NameappExitCodeTextBox0/TextBox/StackPanelButton DockPanel.DockTop ClicknewWindowButton_ClickNew Window/ButtonButton DockPanel.DockTop ClickexplicitShutdownButton_ClickShutdown Explicitly (Passing Exit Code)/ButtonCanvas //DockPanel
/WindowMainWindow的cs如下
using System;
using System.Windows;
using System.Windows.Controls;namespace ApplicationShutdown
{/// summary/// Interaction logic for MainWindow.xaml/// /summarypublic partial class MainWindow : Window{public MainWindow(){InitializeComponent();}private void MainWindow_Loaded(object sender, RoutedEventArgs e){shutdownModeListBox.Items.Add(OnLastWindowClose);shutdownModeListBox.Items.Add(OnExplicitShutdown);shutdownModeListBox.Items.Add(OnMainWindowClose);shutdownModeListBox.SelectedValue OnLastWindowClose;shutdownModeListBox.SelectionChanged shutdownModeListBox_SelectionChanged;Application.Current.ShutdownMode ShutdownMode.OnLastWindowClose;}private void shutdownModeListBox_SelectionChanged(object sender, SelectionChangedEventArgs e){Application.Current.ShutdownMode (ShutdownMode) Enum.Parse(typeof (ShutdownMode), shutdownModeListBox.SelectedValue.ToString());}private void newWindowButton_Click(object sender, RoutedEventArgs e){(new ChildWindow()).Show();}private void explicitShutdownButton_Click(object sender, RoutedEventArgs e){var exitCode 0;int.TryParse(appExitCodeTextBox.Text, out exitCode);Application.Current.Shutdown(exitCode);}}
}ChildWindow的xaml如下
Window x:ClassApplicationShutdown.ChildWindowxmlnshttp://schemas.microsoft.com/winfx/2006/xaml/presentationxmlns:xhttp://schemas.microsoft.com/winfx/2006/xamlxmlns:dhttp://schemas.microsoft.com/expression/blend/2008xmlns:mchttp://schemas.openxmlformats.org/markup-compatibility/2006xmlns:localclr-namespace:ApplicationShutdownmc:IgnorabledTitleChildWindow Height300 Width300 ClosingChildWindow_Closing ClosedChildWindow_ClosedGrid/
/WindowChildWindow的cs如下
using System;
using System.ComponentModel;
using System.Windows;namespace ApplicationShutdown
{/// summary/// Interaction logic for ChildWindow.xaml/// /summarypublic partial class ChildWindow : Window{public ChildWindow(){InitializeComponent();}private void ChildWindow_Closing(object sender, CancelEventArgs e){Console.WriteLine(Closing);var result MessageBox.Show(Allow Shutdown?, Application Shutdown Sample,MessageBoxButton.YesNo,MessageBoxImage.Question);e.Cancel (result MessageBoxResult.No);}private void ChildWindow_Closed(object sender, EventArgs e){Console.WriteLine(Closed);}}
}OnLastWindowClose
当最后一个窗口关闭或者调用System.Windows.Application.Shutdown方法时应用程序会关闭。
最后一个窗口关闭: 调用System.Windows.Application.Shutdown方法: OnMainWindowClose
当主窗口关闭或者调用System.Windows.Application.Shutdown方法时应用程序会关闭。
主窗口关闭 或者调用System.Windows.Application.Shutdown方法关闭与上面效果相同这里就不重复了。
OnExplicitShutdown
只有当调用System.Windows.Application.Shutdown方法时应用程序才会关闭。
普通关闭 关闭所有窗口之后程序并不会停止。
调用System.Windows.Application.Shutdown方法: 总结
本文介绍了WPF程序的三种不同的关闭模式分别是OnLastWindowClose、OnMainWindowClose与OnExplicitShutdown。
• OnLastWindowClose当最后一个窗口关闭或者调用System.Windows.Application.Shutdown方法时应用程序会关闭。 • OnMainWindowClose当主窗口关闭或者调用System.Windows.Application.Shutdown方法时应用程序会关闭。 • OnExplicitShutdown只有当调用System.Windows.Application.Shutdown方法时应用程序才会关闭。
借助图解更好理解 代码来源
[WPF-Samples/Application Management/ApplicationShutdown at main · microsoft/WPF-Samples (github.com)](https://github.com/microsoft/WPF-Samples/tree/main/Application Management/ApplicationShutdown)