微软提供了一个ContextMenu 类,用于弹出菜单。同时这个菜单是可以与控件绑定,指定弹出菜单。
我们以整个WPF窗体为例:右键点击wpf窗体任何地方时,弹出菜单,点击退出。
首先在xaml中,添加contextmenu
<Window.ContextMenu>
<ContextMenu Name="menu">
<MenuItem Name="exit" Header="退出" Click="window_exit"></MenuItem>
</ContextMenu>
</Window.ContextMenu>
我们对window添加名为Menu的ContextMenu,同时菜单中包含了名为exit的菜单项。当点击“退出”菜单项时,激活window_exit事件,退出整个程序。(Header为菜单项的内容)
为了响应右键弹出菜单,我们需要在xaml中添加右击事件:
<Window x:Class="ConceptClock.MainWindow"
Title="MainWindow" Height="500" Width="500"
Topmost="True"
MouseRightButtonDown="Window_MouseRightButtonDown_1"
>
同时在cs中加入:
private void Window_MouseRightButtonDown_1(object sender, MouseButtonEventArgs e)
{
menu.IsOpen = true;
}
设置menu的IsOpen属性为true,显示菜单
再设置点击退出时的事件:
private void window_exit(object sender, EventArgs e)
{
this.Close();
}
如图所示:
如果要显示菜单中间的分隔符,加个<Separator />就好:
Window.ContextMenu>
<ContextMenu Name="menu">
<MenuItem Name="exit" Header="退出" Click="window_exit"></MenuItem>
<MenuItem Name="exit1" Header="退出" Click="window_exit"></MenuItem>
<Separator />
<MenuItem Name="exit2" Header="退出" Click="window_exit"></MenuItem>
</ContextMenu>
</Window.ContextMenu>