가파른 WPF Mountain을 올라가서 고통 받고 있습니다.UserControl에서 MouseButtonEvent를 발생 시키면 MainWindow는 MouseButtonEventArgs에 대한 액세스 권한이 없습니다.
내가 UserControl을을 정의하고, 내 MainWindow를가 MouseButtonEventArgs 뒤에 UserControl을 코드에서
(예를 들어 마우스 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에서 이벤트를받을 수 있지만, 인수는 RoutedEventArgs 있습니다 (어떤 정상입니다)하지만 난 마우스 e.GetPosition을 얻는 데 필요한 MouseButtonEventArgs에 대한 액세스 권한이 없습니다.
이 경우 어떤 멋진 해결책을 제안 하시겠습니까?
solutio를 찾았습니다. –
네, 그게 무슨 뜻인지, 라우트 된 이벤트를 사용하는 것보다 훨씬 간단합니다. 물론 때로는 이벤트를 라우트해야합니다. –