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]()