2010-08-10 2 views
3

나는 Routed Events에 관한 this 좋은 기사를 읽었으며, 왜 우리가 때때로 거품 이벤트를 필요로하는지, 때로는 터널 이벤트가 필요한지 이해했습니다.라우팅 이벤트 이해 : 거품과 터널 이벤트가 모두 필요한 이유는 무엇입니까?

내가 이해하지 못했던 것은 터널 이벤트를 사용할 때 소스 요소가 처리되거나 소스 요소에 도달 한 후에도 여전히 버블 이벤트가 시작된다는 것입니다. 사전에

감사합니다!

답변

4

이 기사에서는 단추에 이미지를 넣으면 해당 이미지가 터널 이벤트가 발생합니다. 그러나 버튼 자체가 클릭 된 것처럼 해당 클릭을 처리하기를 원할 가능성이 높습니다. 버튼이 이미지를 소유하고 있기 때문에 버튼 자체에서 클릭 이벤트까지 버블 링하는 버블 이벤트도 발생합니다. 버튼에 대한 일반적인 이벤트 핸들러를 사용하여 버튼 클릭처럼 이미지를 처리 ​​할 수 ​​있습니다.

2

두 이벤트 (터널 및 버블)에 대한 이벤트가 서로 다릅니다. 터널의 경우 PreviewXXX (예 : PreviewMouseDown)를 사용하고 버블 이벤트의 경우 XXX (예 : MouseDown) 이벤트를 사용합니다.

순서에 따라 Tunnel 이벤트는 응용 프로그램의 루트에서 시작하여 원본에서 끝나기 시작합니다. 그리고 Bubble 이벤트가 트리거됩니다.

이 두 가지 이벤트가 모두 필요합니다.

관련 문제