单击鼠标左键WPF上下文菜单 [英] wpf context menu left-click

查看:326
本文介绍了单击鼠标左键WPF上下文菜单的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

是否有可能上下文菜单附加到一个WPF控件,并将它打开了左键单击(相对于更习惯右键单击)?我想实现,使用XAML中的(这应该是我控制的视图模板的一部分)。

Is it possible to attach context menu to a wpf control and have it opened on left-click (as opposed to more customary right-click)? I want to achieve that using xaml only (this should be a part of my control's view template).

推荐答案

下面是我如何会做什么,我建议一个简单的例子:

Here is how I would do a simple example of what I am suggesting:

在XAML:

<Window x:Class="LeftClickMenu.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow">
    <Grid>
        <Border Width="400" Height="300" Background="#ccc" BorderBrush="#333" 
                BorderThickness="1"
                MouseLeftButtonDown="Border_MouseLeftButtonDown"
                MouseRightButtonUp="Border_MouseRightButtonUp">
            <Border.ContextMenu>
                <ContextMenu x:Name="myContextMenu">
                    <MenuItem Header="Menu Item 1" />
                    <MenuItem Header="Menu Item 2" />
                    <MenuItem Header="Menu Item 3" />
                    <MenuItem Header="Menu Item 4" />
                    <MenuItem Header="Menu Item 5" />
                </ContextMenu>
            </Border.ContextMenu>
        </Border>
    </Grid>
</Window>

和隐藏代码:

using System.Windows;
using System.Windows.Input;

namespace LeftClickMenu
{
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }

        private void Border_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
        {
            myContextMenu.IsOpen = true;
        }

        private void Border_MouseRightButtonUp(object sender, MouseButtonEventArgs e)
        {
            e.Handled = true;
        }
    }
}



我还添加了额外的< STRONG>的MouseRightButtonUp 事件抑制右键单击上下文菜单的弹出窗口。

I also added the extra MouseRightButtonUp event to inhibit the right-click popup of the context menu.

这篇关于单击鼠标左键WPF上下文菜单的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆