私のアプリケーションでは、「開く」と「閉じる」という2つのボタンがあります。WPFで開いているフォームをすべて閉じる方法
クリックするとウィンドウが開きます。ウィンドウを閉じると、ウィンドウが閉じられます。
オープンボタンを3回クリックすると、3つのウィンドウが開きます。閉じるボタンをクリックすると、すべてのウィンドウを閉じます。ここで
は私のコードである[それは私のアプリケーションでは、私の要件であるため、スレッドを変更しようとしないでください]
public partial class MainWindow : Window
{
Window ProgressWindow;
Thread ProgressThread;
public MainWindow()
{
InitializeComponent();
}
private void Open_Click(object sender, RoutedEventArgs e)
{
ProgressThread = new Thread(() =>
{
ProgressWindow = new Window();
ProgressWindow.Margin = new Thickness(0, 0, 50, 0);
ProgressWindow.WindowState = WindowState.Normal;
ProgressWindow.WindowStartupLocation = WindowStartupLocation.CenterScreen;
ProgressWindow.Height = 180;
ProgressWindow.Width = 180;
ProgressWindow.Content = "Hello WPF";
ProgressWindow.ShowInTaskbar = false;
ProgressWindow.Show();
ProgressWindow.Closed += (sender2, e2) =>
ProgressWindow.Dispatcher.InvokeShutdown();
System.Windows.Threading.Dispatcher.Run();
});
ProgressThread.SetApartmentState(ApartmentState.STA);
ProgressThread.Start();
}
private void Close_Click(object sender, RoutedEventArgs e)
{
if (ProgressThread.IsAlive == true)
{
ProgressThread.Abort();
}
}
}