Menu
De Banane Atomic
Aller à la navigationAller à la recherche
Menu
<Window> <DockPanel> <Menu DockPanel.Dock="Top"> <MenuItem Header="_Menu1"> <MenuItem Header="_SousMenu1" Click="SousMenu1MenuItem_Click" /> <Separator /> <!-- Avec une image --> <MenuItem Header="_SousMenu2"> <MenuItem.Icon> <Image Source="icon.png" /> </MenuItem.Icon> </MenuItem> <!-- Avec une case à cocher --> <MenuItem Header="_SousMenu2" IsCheckable="True" IsChecked="True" /> </MenuItem> |
Le _ dans le Header sert à définir la touche de raccourci une fois Alt pressé. |
Avec des Routed Commands
MainWindow.xaml |
<Window xmlns:local="clr-namespace:MonNamespace"> <Window.CommandBindings> <CommandBinding Command="{x:Static local:MainWindow.MaCommande}" Executed="MaCommandeExecuted" CanExecute="MaCommandeCanExecute"/> </Window.CommandBindings> <DockPanel> <Menu DockPanel.Dock="Top"> <MenuItem Header="_Menu1" Command="{x:Static local:MainWindow.MaCommande}"> |
MainWindow.xaml.cs |
namespace MonNamespace { public partial class MainWindow : Window { // doit être static pour pouvoir être référencée depuis le XAML avec x:Static public static RoutedCommand MaCommande = new RoutedCommand(); private void MaCommandeExecuted(object sender, ExecutedRoutedEventArgs e) { // e.Parameter contient le paramètre de la commande // e.Source contient le composant graphique branché à la commande } private void MaCommandeCanExecute(object sender, CanExecuteRoutedEventArgs e) { e.CanExecute = true; } |
MainWindow.xaml |
<Window KeyUp="Window_KeyUp"> <DockPanel> <Menu x:Name="menu" DockPanel.Dock="Top" Visibility="Collapsed"> |
MainWindow.xaml.cs |
private void Window_KeyUp(object sender, KeyEventArgs e) { if (e.Key == Key.System) { menu.Visibility = menu.Visibility == Visibility.Collapsed ? Visibility.Visible : Visibility.Collapsed; } } |
Binding de MenuItem
<Menu DockPanel.Dock="Top"> <MenuItem Header="Menu1" ItemsSource="{Binding MenuItemsList}"> <MenuItem.ItemContainerStyle> <Style> <Setter Property="Header" Value="{Binding Name}"></Setter> <Setter Property="Command" Value="{Binding ActivateCommand}"/> <Setter Property="IsChecked" Value="{Binding IsActive}" /> <Setter Property="IsCheckable" Value="True"/> </Style> </MenuItem.ItemContainerStyle> </MenuItem> |