Я пробую повышение ot MouseLeftButtonDownEvent путем пузырения его Визуальное дерево со следующим кодом.
MouseButtonEventArgs args = new MouseButtonEventArgs(Mouse.PrimaryDevice,0, MouseButton.Left);
args.RoutedEvent = UIElement.MouseLeftButtonDownEvent;
args.Source = this;
RaiseEvent(args);
По некоторым причинам высокоуровневые компоненты не получают этот, пузырился событие. Я пропускаю что-то, или разве не возможно повысить это Событие от нажатия мыши
Ваша проблема заключается в том, что вы вызываете событие, которое не является пузырьковым.
MouseLeftButtonDownEvent
определено как RoutingStrategy.Direct
, что означает, что оно направляется только в элемент управления, получающий событие.
Вместо этого вы хотите использовать событие Mouse.MouseDownEvent
. UIElement
и другие классы внутренне преобразуют его в MouseLeftButtonDownEvent
. Убедитесь, что вы установили e.ChangedButton в MouseButton.Left
:
RaiseEvent(new MouseButtonEventArgs(Mouse.PrimaryDevice, 0, MouseButton.Left)
{
RoutedEvent = Mouse.MouseDownEvent,
Source = this,
});