『 라우팅 전략 실행 』

 

 

 

지난 강좌예제 에서 알아본 라우팅 전략의 실행 결과물을

 

보여드리겠습니다.

 

 

 

귀여운 팩맨 이미지를 띄우게 되었습니다

 

팩맨이미지 그러니까 Path 에서 마우스 좌클릭을 해보시면

 

ListBox 에 Path 에서 이벤트가 발생됨을 보이실겁니다

 

 

 

예상을 해보셨겠지만 버튼테서 클릭을 하게 되면 버튼에서

 

이벤트가 발생했다는 것을 알 수 있겠습니다

 

이번엔 버튼에서 마우스 우클륵해서 Window 에 등록한 이벤트

 

핸들러가 버블링을 통해 실행되는지 보겠습니다

 

실행 결과로 정상적으로 버블링을 통한 이벤트가 실행된것을

 

확인하실수가 있으실 겁니다

 

예제를 통해 이벤트가 하위요소에서 발생할 때 각각의 요소에

 

상위요소로 이벤트 전달할 핸들러를 등록하지 않더라도

 

라우트된 이벤트의 버블링을 통해 알아서 상위요소로 이벤트가

 

전달되어 지는것을 알수 있으실겁니다

 

그런데 눈치 채셨나요???

 

Path 에서 마우스 우클릭을 해보셨다면 Window 에 등록한

 

이벤트 핸들러가 실행되지 않음을 아실수 있으싥덥니다

 

그것은 제가 임의로 버블링되는 이벤트 라우팅을 중단했기때문이죠

 

다시 위으 코드하인드페이지에 작성한 코드를 보시면

 

"SometingClickted" 이란 이벤트 핸들에 보시면 마지막에

 

"e.Handled - true;" 라는 코드가 있으실겁니다

 

이 코드는 이벤트 핸들러의 RoutedEventArgs 클래스의

 

Handled 속성을 이용하여 이벤트 라우팅을 중단한 것입니다.

 

여러분은 때에 따라서 버블링되는 이벤트를 중단해야 할 경우에

 

Handled 의 속성을 "true" 로 변경하여 버블링을 중단할 수 있고

 

내부적으로 버를링은 되나 이미 이벤트를 처리한 것으로 다시

 

보고 할 수 있게됩니다.

 

 

 

 

+ Recent posts