MenuItem opened event
<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;
}
}
}
}
Related examples in the same category