Menus in WPF

In this article, we will discuss the Menu Control in WPF. For this, follow these steps:

Step 1: First we create the Menus and a TextBox in the .xaml Page like this:

<Menu>
            <MenuItem Header="File">
                <MenuItem Header="New" />
                <MenuItem Header="Open" Click="Open_Click" />
                <MenuItem Header="Save" Click="Save_Click"/>
            </MenuItem>
            <MenuItem Header="Edit">
                <MenuItem  Header="Cut"/>
                <MenuItem Header="Copy" />
                <MenuItem Header="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"/>

                <MenuItem Header="Thin" IsCheckable="True"
              Checked="Thin_Checked"
              />

                <MenuItem Header="Medium" IsCheckable="True"
              Checked="Medium_Checked"
              />
 

                <MenuItem Header="Increase Font Size"
              Click="IncreaseFont_Click"/>
                <MenuItem Header="Decrease Font Size"

              Click="DecreaseFont_Click"/>

            </MenuItem>
        </Menu>
<
TextBox Name="TextBox1" TextWrapping="Wrap"
         Margin="0,55,55,0" Height="55" VerticalAlignment="Top">
My name is mahak Gupta
       
</TextBox>

The Output Will be:

MenuWPF1.jpg

MenuWPF2.jpg

Step 2: In the previous code we write the events in the code. So first we start to write the code for the File Menu:

<MenuItem Header="File">
                <MenuItem Header="New" />
                <MenuItem Header="Open" Click="Open_Click" />
                <MenuItem Header="Save" Click="Save_Click"/>
            </MenuItem>

In the .cs Page:

private void Open_Click(object sender, RoutedEventArgs e)
Microsoft.Win32.OpenFileDialog dl1 = new Microsoft.Win32.OpenFileDialog();
    dl1.FileName = "MYFileSave";
    dl1.DefaultExt = ".txt";
    dl1.Filter = "Text documents (.txt)|*.txt";
    Nullable<bool> result = dl1.ShowDialog();
    if (result == true)
    {
        string filename = dl1.FileName;
    }
 
}
private void Save_Click(object sender, RoutedEventArgs e)
{
    Microsoft.Win32.SaveFileDialog dl1 = new Microsoft.Win32.SaveFileDialog();

    dl1.FileName = "MYFileSave";
    dl1.DefaultExt = ".txt";
    dl1.Filter = "Text documents (.txt)|*.txt";
    Nullable<bool> result = dl1.ShowDialog();
    if (result == true)
    {
        string filename = dl1.FileName;
    }
}

So when we click on the , the output will be:

MenuWPF3.jpg

And on the Save:

MenuWPF4.jpg

Step 3: Now we write the code for the Font Menu:

<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"/>
   
   
<MenuItem Header="Thin" IsCheckable="True"
  Checked="Thin_Checked"
  />

    <MenuItem Header="Medium" IsCheckable="True"
  Checked="Medium_Checked"
  />
 

    <MenuItem Header="Increase Font Size"
  Click="IncreaseFont_Click"/>
    <MenuItem Header="Decrease Font Size"|
  Click="DecreaseFont_Click"/>

</MenuItem>

Here we use the Checked event in some places, so the output will be like this:

MenuWPF5.jpg

Now we write the code in the .cs page:

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)
{
    if (TextBox1.FontSize < 20)
    {
        TextBox1.FontSize += 1;
    }
}
 
private void DecreaseFont_Click(object sender, RoutedEventArgs e)
{
    if (TextBox1.FontSize > 10)
    {
        TextBox1.FontSize -= 1;
    }
}

private void Thin_Checked(object sender, RoutedEventArgs e)
{
    TextBox1.FontWeight = FontWeights.Thin;

}

private void Medium_Checked(object sender, RoutedEventArgs e)
{
        TextBox1.FontWeight = FontWeights.Medium;
}

In this example, we use the TextBox to show the output.

So when we click on the Italic Button, The output will be:

MenuWPF6.jpg