繁体   English   中英

在WPF中模拟右键单击

[英]Simulating a right click in wpf

我想模拟/路由右键单击WPF“控件”。

使长话短说。 我有一个应该对左键做出反应的Adorner (因此可见的点击测试必须为true),但与此同时,我希望它对右键单击是“透明的”。 (换句话说,我希望其下的控件收到此点击-右击使Adorner消失)。

我试图直接在鼠标下的控件上引发MouseRightButtonUp事件(在Adorner消失但似乎不起作用之后)。 我想避免调用系统函数(例如通过P / Invoke调用mouse_event)。 可以在wpf中完成吗?

据我所知,我在路由事件和更改Adorners IsHitTestVisible属性时遇到了麻烦。 主要问题是,如果我没记错的话,装饰器和控件位于视觉树的不同分支上,因此在装饰器上生成的路由事件将无法到达您的控件。

如果您不提供代码,我不能说太多,但是最简单的工作应该是找到鼠标位置下的控件并执行

 private void myAdorner_MouseRightButtonDown(object sender, MouseButtonEventArgs e)
        {
            MouseButtonEventArgs revent = new MouseButtonEventArgs(e.MouseDevice, e.Timestamp, MouseButton.Right);
            revent.RoutedEvent = e.RoutedEvent;
            //find you control
            control.RaiseEvent(revent);
        }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM