Mega Code Archive

 
Categories / C# / WPF
 

Application Current Windows stores all windows you created

<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;       }     }   } }