Add Menu to NavigationWindow Content

image_pdfimage_print


   
 

<NavigationWindow x:Class="NavigationApplication.StartupWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="NavigationApplication" Height="300" Width="500"
    >
 
</NavigationWindow>


//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 NavigationApplication
{
    public partial class StartupWindow : System.Windows.Navigation.NavigationWindow
    {

        public StartupWindow()
        {
            InitializeComponent();

            this.Content = new Menu();
        }

    }
}

   
     


Menu item action handler

image_pdfimage_print


   
 
<Window x:Class="WpfApplication1.Window1"
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  Title="FlowDocReader Load/Save Sample" Width="640" Height="480">
  <Grid>
    <Grid.RowDefinitions>
      <RowDefinition Height="22"/>
      <RowDefinition/>
    </Grid.RowDefinitions>

    <Grid.ColumnDefinitions>
      <ColumnDefinition/>
    </Grid.ColumnDefinitions>

    <Menu Grid.Row="0">
      <MenuItem>
        <MenuItem.Header>File</MenuItem.Header>
        <MenuItem Click="LoadFile">
          <MenuItem.Header>Load</MenuItem.Header>
        </MenuItem>
        <MenuItem Click="SaveFile">
          <MenuItem.Header>Save As...</MenuItem.Header>
        </MenuItem>
        <MenuItem Click="Clear">
          <MenuItem.Header>Clear Content</MenuItem.Header>
        </MenuItem>
        <MenuItem Click="Exit">
          <MenuItem.Header>Exit</MenuItem.Header>
        </MenuItem>
      </MenuItem>
    </Menu>
    
    <FlowDocumentReader Name="FlowDocRdr" Grid.Row="1"/>
    
  </Grid>
</Window>

//File:Window.xaml.cs
using System;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;
using System.Windows.Forms;
using System.IO;
using System.Windows.Markup;

namespace WpfApplication1
{

    public partial class Window1 : Window
    {

        public Window1()
        {
            InitializeComponent();
        }

        void LoadFile(Object sender, RoutedEventArgs args)
        {
            Console.WriteLine("load");
        }

        void SaveFile(Object sender, RoutedEventArgs args)
        {
            Console.WriteLine("save");
        }

        void Clear(Object sender, RoutedEventArgs args) { FlowDocRdr.Document = null; }
        void Exit(Object sender, RoutedEventArgs args) { this.Close(); }
    }
}

   
     


A main menu

image_pdfimage_print


   
    

<Page xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
      HorizontalAlignment="Stretch" VerticalAlignment="Top">
<Menu>
  <MenuItem Header="_File">
    <MenuItem Header="_New" />
    <MenuItem Header="_Open..." />
    <MenuItem Header="_Save" />
    <MenuItem Header="Sa_ve As..." />
    <Separator />
    <MenuItem Header="Page Se_tup..." />
    <MenuItem Header="_Print..." />
    <Separator />
    <MenuItem Header="E_xit" />
  </MenuItem>
  <MenuItem Header="_Edit">
    <MenuItem Header="_Undo" />
    <MenuItem Header="_Redo" />
    <Separator />
    <MenuItem Header="Cu_t" />
    <MenuItem Header="_Copy" />
    <MenuItem Header="_Paste" />
    <MenuItem Header="_Delete" />
    <Separator />
    <MenuItem Header="Select _All" />
  </MenuItem>
  <MenuItem Header="_Help">
    <MenuItem Header="Help _Topics" />
    <MenuItem Header="_About..." />
  </MenuItem>
</Menu>
</Page>

   
    
    
    
     


MenuItems with Commands

image_pdfimage_print


   
    

<Page xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
      HorizontalAlignment="Stretch" VerticalAlignment="Top">
    <Menu>
        <MenuItem Header="_Edit">
            <MenuItem Header="_Undo" Command="Undo" />
            <MenuItem Header="_Redo" Command="Redo"/>
            <Separator />
            <MenuItem Header="Cu_t" Command="Cut" />
            <MenuItem Header="_Copy" Command="Copy" />
            <MenuItem Header="_Paste" Command="Paste" />
            <MenuItem Header="_Delete" Command="Delete" />
            <Separator />
            <MenuItem Header="Select _All" Command="SelectAll" />
        </MenuItem>
    </Menu>
</Page>

   
    
    
    
     


Window with Menu, ToolBar, StatusBar

image_pdfimage_print


   
 
<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}
", 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!");
    }
  }
}

   
     


MenuItem Commands And Events

image_pdfimage_print


   
 

<Window x:Class="MenuItemCommands.Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="MenuItem Commands and Events Sample" Height="300" Width="300">
  <StackPanel>
    <Menu>
      <MenuItem Header="_Edit">
        <MenuItem Command="ApplicationCommands.Copy"/>
        <MenuItem Command="ApplicationCommands.Cut"/>
        <MenuItem Command="ApplicationCommands.Paste"/>
      </MenuItem>
      <MenuItem Header="_Font">
        <MenuItem Header="_Bold" IsCheckable="True" Checked="Bold_Checked" Unchecked="Bold_Unchecked"/>
        <MenuItem Header="_Italic" IsCheckable="True" Checked="Italic_Checked" Unchecked="Italic_Unchecked"/>
        <Separator/>
        <MenuItem Header="I_ncrease Font Size" Click="IncreaseFont_Click"/>
        <MenuItem Header="_Decrease Font Size" Click="DecreaseFont_Click"/>
      </MenuItem>
    </Menu>
    <TextBox Name="textBox1" TextWrapping="Wrap" Margin="2">
      this is a test
    </TextBox>
  </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;


namespace MenuItemCommands
{
    public partial class Window1 : System.Windows.Window
    {
        public Window1()
        {
            InitializeComponent();
        }
        private void Bold_Checked(object sender, RoutedEventArgs e)
        {
            textBox1.FontWeight = FontWeights.Bold;
        }

        private void Bold_Unchecked(object sender, RoutedEventArgs e)
        {
            textBox1.FontWeight = FontWeights.Normal;
        }
        private void Italic_Checked(object sender, RoutedEventArgs e)
        {
            textBox1.FontStyle = FontStyles.Italic;
        }

        private void Italic_Unchecked(object sender, RoutedEventArgs e)
        {
            textBox1.FontStyle = FontStyles.Normal;
        }

        private void IncreaseFont_Click(object sender, RoutedEventArgs e)
        {
            textBox1.FontSize += 2;
        }

        private void DecreaseFont_Click(object sender, RoutedEventArgs e)
        {
            textBox1.FontSize -= 2;
        }
    }
}