У меня есть FrameworkElement, и я хочу выполнить действие A, когда пользователь
одиночные щелчки и действие B, когда пользователь дважды щелкает.
Если вы обрабатываете событие, которое предоставляет MouseButtonEventArgs
, например UIElement.MouseLeftButtonDown
, вы можете получить доступ к MouseButtonEventArgs.ClickCount
, чтобы определить, произошло ли несколько щелчков за время двойного щелчка друг друга. Поскольку FrameworkElement
происходит от UIElement
, это должно быть возможно в вашем случае.
Нет необходимости использовать DllImport или WinForms, так как вам действительно не нужно знать время двойного щелчка для достижения вашей главной цели.
Редактировать добавление: я обнаружил, что это действительно работает только для событий ButtonDown (слева или справа). Я не уверен, почему они не реализовали это должным образом для событий ButtonUp, но этого должно быть достаточно, чтобы перехватить оба события и сохранить переменную-член ClickCount из ButtonDown, которую можно проверить при получении ButtonUp.