C# WPF编程-Menu
- 布局:
- 代码:
- 效果
在WPF(Windows Presentation Foundation)中,Menu控件用于创建下拉菜单或上下文菜单,它提供了丰富的定制选项来满足不同的应用需求。下面将介绍如何在WPF应用程序中使用Menu控件,包括基本用法、添加菜单项、设置快捷键以及样式定制。
- Menu:定义菜单
- MenuItem: 定义菜单项
布局:
<Window x:Class="WpfBaseDemo.WindowMenuDemo"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:WpfBaseDemo"
mc:Ignorable="d"
Title="WindowMenuDemo" Height="450" Width="800">
<Grid>
<!-- 背景图 -->
<Grid.Background>
<LinearGradientBrush>
<LinearGradientBrush.GradientStops>
<GradientStop Offset="0.00" Color="Red"/>
<GradientStop Offset="0.50" Color="LightYellow"/>
<GradientStop Offset="1.00" Color="Blue"/>
</LinearGradientBrush.GradientStops>
</LinearGradientBrush>
</Grid.Background>
<StackPanel>
<Menu>
<!-- 文件菜单 -->
<MenuItem Header="_File">
<MenuItem Header="_New" Click="MenuItemFileNew_Click">
<MenuItem.Icon>
<Image Source="Images/filenew.png"/>
</MenuItem.Icon>
</MenuItem>
<MenuItem Header="_Open" Click="MenuItemFileOpen_Click">
<MenuItem.Icon>
<Image Source="Images/fileopen.png"/>
</MenuItem.Icon>
</MenuItem>
<MenuItem Header="_Save" Click="MenuItemFileSave_Click">
<MenuItem.Icon>
<Image Source="Images/filesave.png"/>
</MenuItem.Icon>
</MenuItem>
</MenuItem>
<!-- 编辑菜单 -->
<MenuItem Header="_Edit">
<MenuItem Header="_Redo">
<MenuItem.Icon>
<Image Source="Images/edit-redo.png"/>
</MenuItem.Icon>
</MenuItem>
<MenuItem Header="_Undo">
<MenuItem.Icon>
<Image Source="Images/edit-undo.png"/>
</MenuItem.Icon>
</MenuItem>
<!-- 分割线 -->
<Separator Background="Red"/>
<MenuItem Header="_Copy">
<MenuItem.Icon>
<Image Source="Images/editcopy.png"/>
</MenuItem.Icon>
</MenuItem>
<MenuItem Header="_Paste">
<MenuItem.Icon>
<Image Source="Images/editpaste.png"/>
</MenuItem.Icon>
</MenuItem>
<MenuItem Header="_Cut">
<MenuItem.Icon>
<Image Source="Images/editcut.png"/>
</MenuItem.Icon>
</MenuItem>
<MenuItem Header="_Delete">
<MenuItem.Icon>
<Image Source="Images/editdelete.png"/>
</MenuItem.Icon>
</MenuItem>
<!-- 分割线 -->
<Separator Height="1" Background="DarkCyan"/>
<MenuItem Header="_Find">
<MenuItem.Icon>
<Image Source="Images/find.png"/>
</MenuItem.Icon>
<!-- 子菜单项 -->
<MenuItem Header="_Kfind">
<MenuItem.Icon>
<Image Source="Images/kfind.png"/>
</MenuItem.Icon>
</MenuItem>
<MenuItem Header="_Rfind">
<MenuItem.Icon>
<Image Source="Images/edit-find-replace.png"/>
</MenuItem.Icon>
</MenuItem>
</MenuItem>
</MenuItem>
<!-- 无图标 菜单 -->
<MenuItem Header="_Folder">
<MenuItem Header="_New Folder"/>
<MenuItem Header="_Open Folder"/>
<MenuItem Header="_Close Folder"/>
</MenuItem>
</Menu>
<StackPanel Orientation="Vertical">
<StackPanel >
<Image Width="300" Height="200" Source="Images/Linux-logo.png" />
</StackPanel>
<StackPanel >
<Image Width="300" Height="200" Source="Images/Linux-logo.png" Stretch="Fill" />
</StackPanel>
</StackPanel>
</StackPanel>
</Grid>
</Window>
代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
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 WpfBaseDemo
{
/// <summary>
/// WindowMenuDemo.xaml 的交互逻辑
/// </summary>
public partial class WindowMenuDemo : Window
{
public WindowMenuDemo()
{
InitializeComponent();
}
private void MenuItemFileNew_Click(object sender, RoutedEventArgs e)
{
MessageBox.Show("File New.");
}
private void MenuItemFileOpen_Click(object sender, RoutedEventArgs e)
{
MessageBox.Show("File Open.");
}
private void MenuItemFileSave_Click(object sender, RoutedEventArgs e)
{
MessageBox.Show("File Save.");
}
}
}
效果