WPF 사용자 정의 Tunel RoutedEvent를 만드는 방법은 무엇입니까?

StackOverflow https://stackoverflow.com/questions/1308000

  •  19-09-2019
  •  | 
  •  

문제

부모 통제에서 아동 통제로 터널 라우팅 이벤트 터널링의 간단한 예가 필요합니다.

(이것은 아니다 실제 코드) - 사실, 더 깊이 갈수록 XAML이 잘못되었다고 생각합니다. 아마도 XAML에서 XAML에서 어린이 노드의 TUNNELLED 이벤트에 가입해서는 안됩니다 (확실하지 않습니까?).

<PARENT>    
   <MyControl DoSomethingOnUserAction="raiseTunnelEvent"> HELP </MyControl >    
   <CHILD> I SHOULD HANDLE tunnelled event </CHILD> 
</PARENT>

간단하고 간결한 예가 도움이 될 것입니다.

고마워요, 앨런

도움이 되었습니까?

해결책

확실하지 않지만 고양이가 짖는 것을 원할 수도 있습니다.

Button (PresentationFramework에서)의 RoutedEvent clickevent는 다음과 같이 선언됩니다.

public static readonly RoutedEvent ClickEvent = 
    EventManager.RegisterRoutedEvent("Click", 
    RoutingStrategy.Bubble, typeof(RoutedEventHandler), typeof
    (ButtonBase));

참고 readonly RoutingStrategyBubble.

다음은 터널, 버블 및 직접 이해하는 데 도움이 될 수 있습니다.

그리고 이것은 당신에게 나머지 길을 가야합니다 : msdn.microsoft.com/en-us/magazine/cc785480.aspx

팁 : WPF의 컨벤션 터널링 이벤트에 의해 "미리보기"(예 : "미리보기 소거"로 시작합니다. 이벤트가 "미리보기"로 시작되지 않으면 터널 라우팅 스트레이트기를 사용하지 않을 수 있습니다. 또한 일반적으로 터널과 터널을 보게 될 것입니다. 버블은 먼저 터널 발사와 짝을 이루고 "미리보기 선거"에서와 같이 거품과 "폭발"과 같이 거품을 짝짓기를합니다.

버튼의 클릭 터널이 필요한 경우 고려할 수 있습니다.

  1. 미리보기를 사용합니다 (모든 마우스 다운이 클릭이되기 때문에 동일하지 않으며 위험 할 수 있습니다).
  2. TunnelButton을 작성하여 미리보기 클릭을 올린 다음 클릭하십시오.

다른 팁

149 페이지의 Visual Studio 2008과 함께 WPF가 작동하는 책을 알 수 있습니다. 149 페이지의 오해의 소지가있는 다이어그램이 있습니다.이 다이어그램은 상위 노드에서 라우 테드 벤트를 올릴 수 있고 하위 노드로 튜닝 된 이벤트를 라우팅 할 수 있음을 나타내는 것으로 보입니다.

그것은 사실이 아닌 것으로 밝혀졌습니다 ... 1/2 일 나쁜 다이어그램의 b/c (그렇지 않으면 좋은 책) [ISBN : 1-933988-22-3

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top