Mainwindow.xaml
<Window x:Class="WPF多窗口.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="主窗口" Height="388.889" Width="581.322">
<Grid Margin="0,0,2,-4">
<Button x:Name="ButtonNew" Content="显示新窗口" HorizontalAlignment="Left" Margin="336,104,0,0" VerticalAlignment="Top" Width="170" Click="ButtonNew_Click"/>
<Button x:Name="ButtonClose" Content="关闭全部附属窗口" HorizontalAlignment="Left" Margin="336,175,0,0" VerticalAlignment="Top" Width="170" Click="ButtonClose_Click"/>
<Button x:Name="ButtonExit" Content="结束程序运行" HorizontalAlignment="Left" Margin="336,245,0,0" VerticalAlignment="Top" Width="170" Click="ButtonExit_Click"/>
</Grid>
</Window>
MainWindow.xaml.cs
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 WPF多窗口
{
/// <summary>
/// MainWindow.xaml 的交互逻辑
/// </summary>
public partial class MainWindow : Window
{
private int windowCount;
private int left;
private int top;
public MainWindow()
{
InitializeComponent();
windowCount = 0;
left = 300;
top = 300;
}
private void ButtonNew_Click(object sender, RoutedEventArgs e)
{
Window win = new Window();
windowCount++; left += 30; top += 30;
win.Title = "附属窗口" + windowCount.ToString();
win.Height = 200; win.Width = 328;
win.Left = left; win.Top = top;
win.Owner = this;
win.ShowActivated = false;
win.Show();
}
private void ButtonClose_Click(object sender, RoutedEventArgs e)
{
foreach (Window win in this.OwnedWindows)
win.Close();
}
private void ButtonExit_Click(object sender, RoutedEventArgs e)
{
App.Current.Shutdown();
}
}
}