2010-07-26 8 views
4

동료와 나는 라우트 된 이벤트에 대해 이야기하고 있었고, 우리는 많은 의미를 가지지 않는 몇 가지 사항을 생각해 냈습니다. 주로 Direct 이벤트의 목적은 무엇이며 LeftMouseButtonDownPreviewLeftMouseButtonDown은 각각 버블 링 및 터널링과 반대되는 직접 이벤트입니까?직접 전달 이벤트 질문

설명서에 따르면 LeftMouseButtonDown (및 미리보기) 이벤트는 버블 링 및 터널링 이벤트로 작동하는 것으로 나타났습니다. 단, 이러한 이벤트가 트리를 통과 할 때 이벤트가 발생하고 다시 발생합니다. 직접 이벤트 만 이벤트의 소스에 의해 처리 될 수 있기 때문에, 각각의 이벤트를 발생하고 또한 그러므로 소스이기 때문에 어떤 UIElement가 직접 이벤트를 처리 할 수 ​​있다고 다음과 같습니다. (이벤트를 다시 제기하는 것이 제기하는 것과 다른 경우가 아닌가?). 왜 다른 많은 비슷한 사건들처럼 터널링과 버블 링이 아닌가?

내 동료 나 내가 직접 전략을 사용하여 맞춤 이벤트를 만들지는 못했지만 (터널링 및 버블 링을 위해 맞춤형 이벤트를 만들었지 만) 가장 일반적인 것 중 하나 인 LeftMouseButtonDown 이벤트 (가장 일반적이지 않은 경우)에서이 전략을 사용하고 있습니다.

누구나 이것에 대한 합리적인 아이디어가 있습니까?

감사합니다.

답변

2

내 생각 엔 성능을 것 같은 일에 대해 여러 이벤트를 가지고에 대한 고려 사항이 있습니다.

은 모두 그와 LeftMouseDown 훨씬 이해가되지 것 경로에 이미 MouseDown에 대한 이벤트가있다. 마지막으로, 어느 것이 먼저 발사하고 \ 핸들링을 취소하면 다른 것을 방지 할 것인가? 동일한 이벤트를 두 번 처리하는 것이 너무 쉬운 것처럼 들립니다.