仍然爬上陡峭的WPF山,痛苦。
我已经定义了一个 UserControl,我的 MainWindow 需要检索来自 UserControl 内部控件的 MouseButtonEventArgs(例如鼠标 e.GetPosition)
在后面的 UserControl 代码中,我完成了注册并引发了冒泡事件。
public static readonly RoutedEvent MyButtonDownEvent = EventManager.RegisterRoutedEvent("MyMouseButtonDown", RoutingStrategy.Bubble, typeof(RoutedEventHandler), typeof(MyUserControl));
public event RoutedEventHandler MyButtonDown {
add { AddHandler(MyButtonDownEvent, value); }
remove { RemoveHandler(MyButtonDownEvent, value); }
}
private void MyMouseButtonDownHandler(object sender, MouseButtonEventArgs e) {
RaiseEvent(new RoutedEventArgs(MyButtonDownEvent ));
}
现在在我的 MainWindow 中,我像这样声明 UserControl:
<local:MyUserControl MouseDown="MyUserControl_MouseDown"/>
后面的代码
private void MyUserControl_MouseDown(object sender, RoutedEventArgs e)
我从 UserControl 接收事件,但 Args 是 RoutedEventArgs(这是正常的),但我无法访问获取鼠标 e.GetPosition 所需的 MouseButtonEventArgs。
在这种情况下,您会建议什么优雅的解决方案?