设置 IsManipulationEnabled 时,WPF 控件不捕获按住事件(右键单击)

标签 wpf events touchscreen right-click

我开始使用触摸屏进行一些测试,我发现如果 UIControl 的“IsManipulationEnabled”属性设置为 true,则不会捕获按住手势(WIN7)触发的 MouseRightClick 事件。难道我做错了什么?

public MainWindow()
    {
        InitializeComponent();
        WC_Rectangle.IsManipulationEnabled = true;
        WC_Rectangle.MouseRightButtonUp += new MouseButtonEventHandler(WC_Rectangle_MouseRightButtonUp);
    }

    void WC_Rectangle_MouseRightButtonUp(object sender, MouseButtonEventArgs e)
    {
        System.Diagnostics.Debug.WriteLine("RIGHT CLICK : " + sender.ToString());
    }

最佳答案

设置后IsManipulationEnabled = true;所有触摸事件都由 WC_Rectangle 捕获和处理,WC_Rectangle 会将它们转换为 Manipulation 事件。因此,触摸事件不会返回到引发它们的控件,这反过来意味着控件无法将未处理的触摸事件提升为鼠标事件(默认)。看:

http://nui.joshland.org/2010/04/why-wont-wpf-controls-work-with-touch.html

关于设置 IsManipulationEnabled 时,WPF 控件不捕获按住事件(右键单击),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3085431/

相关文章:

c# - WPF 窗口在启动时抛出 TypeInitializationException

.net - 如何将 Win32 鼠标消息转换为 WPF 鼠标事件?

c# - 我需要退订吗?

javascript - 使我的网站菜单触摸友好(下拉)

javascript - 按钮在 iPhone(可能还有其他触摸屏)上无法正常工作

javascript - 优化触摸屏的网络界面(处理不需要的鼠标拖动等)

c# - 接受触摸而不移动鼠标?

WPF 网页浏览器 : How to set element click event?

winapi - 在 C++ 中检测屏幕监视器电源状态变化

C#:事件还是观察者接口(interface)?优点缺点?