まだ急なWPF Mountainを登って、苦しんでいます。UserControlからMouseButtonEventを発生させると、MainWindowはMouseButtonEventArgsにアクセスできません
私は、ユーザーコントロールを定義している、と私のメインウィンドウは、(例えばマウスe.GetPositionなど)、ユーザーコントロール内のコントロールから来るMouseButtonEventArgsを取得する必要がある
の背後にあるユーザーコントロールのコードでは、私は登録を行っています私はバブリングのイベントを起こします。
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));
}
は今私のメインウィンドウで私はこのようなユーザーコントロールを宣言:
<local:MyUserControl MouseDown="MyUserControl_MouseDown"/>
そして
private void MyUserControl_MouseDown(object sender, RoutedEventArgs e)
の背後に、このコードをそして私は、ユーザーコントロールからのイベントを受信しますが、argsがRoutedEventArgsです(これは正常ですが)私はマウスe.GetPositionを取得する必要があるMouseButtonEventArgsへのアクセス権を持っていません。
この場合、どのような優雅なソリューションをお勧めしますか?
solutioを見つけた –
はい、それは私が意味したことですが、経路指定されたイベントを使うよりもはるかに簡単です。 –