Window with Menu, ToolBar, StatusBar : Menu « Windows Presentation Foundation « C# / CSharp Tutorial






<Window x:Class="WpfApplication1.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="WpfApplication1" Height="400" Width="500"
    WindowStartupLocation ="CenterScreen" >
  <DockPanel>
    <Menu DockPanel.Dock ="Top" HorizontalAlignment="Left" Background="White" BorderBrush ="Black">
      <MenuItem Header="_File" Click ="FileExit_Click" >
        <Separator/>
        <MenuItem Header ="_Exit" MouseEnter ="MouseEnterExitArea" MouseLeave ="MouseLeaveArea" Click ="FileExit_Click"/>
      </MenuItem>
      <MenuItem Header="_Edit">
        <MenuItem Command ="ApplicationCommands.Copy"/>
        <MenuItem Command ="ApplicationCommands.Cut"/>
        <MenuItem Command ="ApplicationCommands.Paste"/>
      </MenuItem>
      <MenuItem Header="_Tools">
        <MenuItem Header ="_Spelling Hints" MouseEnter ="MouseEnterToolsHintsArea" MouseLeave ="MouseLeaveArea" Click ="ToolsSpellingHints_Click"/>
      </MenuItem>
    </Menu>
    <ToolBar DockPanel.Dock ="Top" >
      <Button Content ="Exit" MouseEnter ="MouseEnterExitArea"
                    MouseLeave ="MouseLeaveArea" Click ="FileExit_Click"/>
      <Separator/>
      <Button Content ="Check" MouseEnter ="MouseEnterToolsHintsArea"
                    MouseLeave ="MouseLeaveArea" Click ="ToolsSpellingHints_Click"
                    Cursor="Help" />
    </ToolBar>
    <StatusBar DockPanel.Dock ="Bottom" Background="Beige" >
      <StatusBarItem>
        <TextBlock Name="statBarText">Ready</TextBlock>
      </StatusBarItem>
    </StatusBar>
    <Grid DockPanel.Dock ="Left">
      <Grid.ColumnDefinitions>
        <ColumnDefinition />
        <ColumnDefinition />
      </Grid.ColumnDefinitions>
      <GridSplitter Grid.Column ="0" Width ="5" Background ="Gray" />
      <StackPanel Grid.Column="0" VerticalAlignment ="Stretch" >
        <Label Name="lblSpellingInstructions" Margin="10,10,0,0">Spelling Hints</Label>
        <Expander Name="expanderSpelling" Header ="Try these!" Margin="10,10,10,10">
          <Label Name ="lblSpellingHints"/>
        </Expander>
      </StackPanel>
      <TextBox Grid.Column ="1"
          SpellCheck.IsEnabled ="True"
          AcceptsReturn ="True"
          Name ="txtData">
      </TextBox>
    </Grid>
  </DockPanel>
</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;


namespace WpfApplication1
{
  public partial class MainWindow : System.Windows.Window
  {
    public MainWindow()
    {
      InitializeComponent();
      SetF1CommandBinding();
    }
    protected void FileExit_Click(object sender, RoutedEventArgs args)
    {
      Application.Current.Shutdown();
    }
    protected void ToolsSpellingHints_Click(object sender, RoutedEventArgs args)
    {
      string spellingHints = string.Empty;
      SpellingError error = txtData.GetSpellingError(txtData.CaretIndex);
      if (error != null)
      {
        foreach (string s in error.Suggestions)
        {
          spellingHints += string.Format("{0}\n", s);
        }
        lblSpellingHints.Content = spellingHints;
        expanderSpelling.IsExpanded = true;
      }
    }
    protected void MouseEnterExitArea(object sender, RoutedEventArgs args)
    {
      statBarText.Text = "Exit the Application";
    }
    protected void MouseEnterToolsHintsArea(object sender, RoutedEventArgs args)
    {
      statBarText.Text = "Spelling Suggestions";
    }
    protected void MouseLeaveArea(object sender, RoutedEventArgs args)
    {
      statBarText.Text = "Ready";
    }
    private void SetF1CommandBinding()
    {
      CommandBinding helpBinding = new CommandBinding(ApplicationCommands.Help);
      helpBinding.CanExecute += CanHelpExecute;
      helpBinding.Executed += HelpExecuted;
      CommandBindings.Add(helpBinding);
    }

    private void CanHelpExecute(object sender, CanExecuteRoutedEventArgs e)
    {
      e.CanExecute = true;
    }
    private void HelpExecuted(object sender, ExecutedRoutedEventArgs e)
    {
      MessageBox.Show("type something!", "Help!");
    }
  }
}
WPF Window With Menu Tool Bar Status Bar








24.35.Menu
24.35.1.File menuFile menu
24.35.2.Menu and MenuItemMenu and MenuItem
24.35.3.Menu With Sub headingMenu With Sub heading
24.35.4.A main menuA main menu
24.35.5.MenuItems with CommandsMenuItems with Commands
24.35.6.Menu item with shortcut and access keyMenu item with shortcut and access key
24.35.7.Window with Menu, ToolBar, StatusBarWindow with Menu, ToolBar, StatusBar
24.35.8.MenuItem Commands And EventsMenuItem Commands And Events
24.35.9.Add MenuItem to MenuAdd MenuItem to Menu
24.35.10.MenuItem opened eventMenuItem opened event
24.35.11.Use MenuItem.Tag to store user objectUse MenuItem.Tag to store user object
24.35.12.Format TextBox with MenuItem: normal, bold, italicFormat TextBox with MenuItem: normal, bold, italic
24.35.13.MenuBar and ToolBarMenuBar and ToolBar
24.35.14.Add Menu to NavigationWindow ContentAdd Menu to NavigationWindow Content
24.35.15.Menu item action handlerMenu item action handler
24.35.16.Add Menu to the Top of a DockPanel
24.35.17.Create Menu and Add MenuItem
24.35.18.Dock both menu and Toolbar to the top of a panel