Элемент управления WPF не захватывает событие нажатия и удержания (щелчок правой кнопкой мыши), когда установлено значение IsManipulationEnabled - PullRequest
7 голосов
/ 21 июня 2010

Я начинаю проводить некоторые тесты с сенсорным экраном и обнаружил, что если для UIControl атрибут «IsManipulationEnabled» имеет значение true, то события MouseRightClick, запускаемые жестом нажатия и удержания (WIN7), не перехватываются,Я что-то не так делаю?

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());
    }

Ответы [ 3 ]

2 голосов
/ 15 ноября 2013

После установки IsManipulationEnabled = true; все события касания захватываются и обрабатываются WC_Rectangle, который преобразует их в события Manipulation. Таким образом, touchevents не туннелируют обратно к элементу управления, который их вызвал, что в свою очередь означает, что элемент управления не может преобразовывать необработанные события касания в события мыши (по умолчанию). см:

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

2 голосов
/ 14 августа 2014

Если вы отмените события манипуляции, вы должны получить события мыши.

0 голосов
/ 20 октября 2010

Используйте поведение вместо

...