<Window x:Class="WpfApplication1.Window1" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="AppWindowsSample" Height="200" Width="300" xmlns:my="clr-namespace:System;assembly=mscorlib"> <StackPanel> <Menu Name="menu1" > <MenuItem Header="Window" x:Name="windowMenu"> <MenuItem Header="SubmenuOpened event" /> </MenuItem> </Menu> <Button Margin="10" Name="newWindowButton" Height="23" VerticalAlignment="Top">New Window</Button> <StatusBar Grid.Row="2" Name="statusBar1" > <TextBlock x:Name="statusText">Status</TextBlock> </StatusBar> <Button Height="23" Margin="10" Name="shutdownButton" VerticalAlignment="Top" >Shutdown</Button> </StackPanel> </Window> //File:Window.xaml.cs using System; using System.Collections.Generic; using System.Text; 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.Shapes; using System.Windows.Controls.Primitives; using System.Diagnostics; using System.ComponentModel; namespace WpfApplication1 { public partial class Window1 : System.Windows.Window { public Window1() { InitializeComponent(); DataContext = Application.Current.Windows; statusText.Text = Application.Current.ShutdownMode.ToString(); newWindowButton.Click += new RoutedEventHandler(newWindowButton_Click); shutdownButton.Click += new RoutedEventHandler(shutdownButton_Click); windowMenu.SubmenuOpened += new RoutedEventHandler(windowMenu_SubmenuOpened); Closing += Window1_Closing; } public void windowMenu_SubmenuOpened(object sender, RoutedEventArgs e) { windowMenu.Items.Clear(); foreach( Window window in Application.Current.Windows ) { MenuItem item = new MenuItem(); item.Header = window.Title; item.Click += windowMenuItem_Click; item.Tag = window; item.IsChecked = window.IsActive; windowMenu.Items.Add(item); } } public void windowMenuItem_Click(object sender, RoutedEventArgs e) { Window window = (Window)((MenuItem)sender).Tag; window.Activate(); } public void newWindowButton_Click(object sender, RoutedEventArgs e) { Window window = new Window(); window.Title = "Window " + DateTime.Now; window.Width = 200; window.Height = 100; window.Show(); statusText.Text = Application.Current.ShutdownMode.ToString(); } void shutdownButton_Click(object sender, RoutedEventArgs e) { Application.Current.Shutdown(); } void Window1_Closing(object sender, CancelEventArgs e) { if( MessageBox.Show("Do you really want to shut down?", "Shutting Down", MessageBoxButton.YesNo) == MessageBoxResult.No ) { e.Cancel = true; } } } }