Событие Raising WPF MouseLeftButtonDownEvent

Я пробую повышение ot MouseLeftButtonDownEvent путем пузырения его Визуальное дерево со следующим кодом.

         MouseButtonEventArgs args = new MouseButtonEventArgs(Mouse.PrimaryDevice,0,     MouseButton.Left);            
        args.RoutedEvent = UIElement.MouseLeftButtonDownEvent;
        args.Source = this;
        RaiseEvent(args);

По некоторым причинам высокоуровневые компоненты не получают этот, пузырился событие. Я пропускаю что-то, или разве не возможно повысить это Событие от нажатия мыши

13
задан TheWommies 10 March 2010 в 22:56
поделиться

1 ответ

Ваша проблема заключается в том, что вы вызываете событие, которое не является пузырьковым.

MouseLeftButtonDownEvent определено как RoutingStrategy.Direct, что означает, что оно направляется только в элемент управления, получающий событие.

Вместо этого вы хотите использовать событие Mouse.MouseDownEvent. UIElement и другие классы внутренне преобразуют его в MouseLeftButtonDownEvent. Убедитесь, что вы установили e.ChangedButton в MouseButton.Left:

RaiseEvent(new MouseButtonEventArgs(Mouse.PrimaryDevice, 0, MouseButton.Left)
{
  RoutedEvent = Mouse.MouseDownEvent,
  Source = this,
});
22
ответ дан 1 December 2019 в 22:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: