我正在尝试通过在 Visual 树中向上冒泡来引发 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,
});
关于wpf - 引发 WPF MouseLeftButtonDownEvent 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2421304/