2011-05-09 7 views
0

관련 문제에 대한 몇 가지 기사를 읽었으며이 내용이 일관성이없는 것으로 보입니다.WPF 이벤트 캡처. mouseup을 제어하고 마우스를 놓지 않았습니다.

마우스를 클릭 할 때 마우스 위치를 캡처해야하는 DataGrid 컨트롤이 있습니다. mouseup 및 mousedown 이벤트 처리기에서이 작업을 수행하는 코드가 있습니다. mousedown은 내가 원하지만 그 사건은 결코 해고되지 않습니다. 나는 거기에 코드를 놓고 중단 점을 설정하고 결코 그 지점에 도달하지 않습니다. 하지만 마우스 업은 꼭 필요한대로 발사됩니다.하지만 필요한 이벤트가 아니라 예측할 수없는 결과가 발생합니다.

무슨 일이 일어나고 있는지 설명하는 데 필요한 기사가 있습니까? 나는 어떤 종류의 라우트 된 이벤트 문제를 가정합니다. 하지만 왜 mouseup 작동하지만 mousedown 않을까? 모든 이벤트가 필요할 때 실행되도록 코드를 수정하려면 어떻게해야합니까?

답변

0

DataGrid의 셀이 MouseDown 이벤트를 캡처하기 때문에 문제가 발생합니다. 당신은을 통해 코드에서 해당 이벤트에 가입하려고 할 수 있습니다

DataGridName.AddHandler(MouseDownEvent, new MouseButtonEventHandler(DataGridName_MouseDown), true); 

또는 당신이 거기에 또한 할 싶어하는지 아니라면, 나는 이미 당신이 사용할 수있는 데이터 그리드에 할당되는 PreviewMouseDown 이벤트를 생각합니다.

이 정보가 도움이되기를 바랍니다.

+0

충분히 간단하고 작동하는 것처럼 보였습니다. WPF에서 이러한 해결 방법이 필요하다는 것이 이상합니다. 나는 단지 사건을 해고하는 데 익숙합니다. 만약 당신이 mousedown 이벤트를 가지고 당신이 컨트롤을 mousedown, 이벤트는 당신이 기대하는 것처럼 그냥 발생합니다. 내가이 운명을 설명하기 위해 읽을 수 있으면이 이상한 wpf 행동 뒤에있는 이유는 무엇입니까? - 솔루션에 대해 다시 한 번 감사드립니다! – Mike