我在 VS2013Express
中创建了一个小 WPF 应用程序,我遇到了一个小问题。
你看,一共有三个窗口,MainWindow
、LatAndLongDialog
、TimeCitiesDialog
。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
namespace GlobalTime_ELITE_for_WPF
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
UserDescText.Content =
"Select a TimeCity or enter the latitude and longitude in \n" +
"to view the World Time there. Or, select another one of the\n" +
"options below to do that. Go to Help by clicking on the link\n" +
"on the upper-right corner of the window to view everything you\n" +
"can do.";
this.Closed += CloseOff;
}
private void OpenTimeCitiesDialog(Object Sender, EventArgs E)
{
TimeCitiesDialog ObjectReference = new TimeCitiesDialog();
ObjectReference.Show();
}
private void OpenLatAndLongDialog(Object Sender, EventArgs E)
{
LatAndLongDialog ObjectReference = new LatAndLongDialog();
ObjectReference.Show();
}
private void CloseOff(Object Sender, EventArgs E)
{
this.Close();
TimeCitiesDialog tcdor = new TimeCitiesDialog();
LatAndLongDialog laldor = new LatAndLongDialog();
}
}
}
如何关闭它们?请帮忙!
最佳答案
关闭 WPF 应用程序的正确方法是使用 Application.Current.Shutdown()
.这将关闭所有打开的 Window
,引发一些事件以便可以运行清理代码,并且无法取消。
Environment.Exit()
即使其他线程正在执行,也会立即终止应用程序。
您还应该考虑设置 Owner
在非主 Window
上。该行为可能更像您对 Z 顺序、最小化和最大化的预期。作为一个额外的好处,拥有的窗口将在所有者 Window
关闭时自动关闭。
关于c# - 关闭 C# WPF 应用程序中的所有 Windows,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37063887/