2012-04-19 2 views
0

끌어서 놓기를 지원하는 트리 뷰의 끌어서 놓기를 구현하고 있습니다.부모 요소를 기준으로 마우스를 가리키는 위치를 결정하는 방법

트리에 폴더와 파일이 있습니다. 폴더의 아래쪽 25 % 위로 드래그하면 다시 정렬됩니다. treeviewitem의 상위 75 %를 드래그하면 내용이 이고 폴더가이됩니다.

요소의 위치를 ​​어떻게 결정합니까? 다음은 작동하지 않는 시도입니다.

private bool ShouldReorder(TreeViewItem targetItem) 
    { 
     var relativePosition = PointToScreen(Mouse.GetPosition(targetItem)); 
     return relativePosition.Y/targetItem.ActualHeight < 0.25; 
    } 

이 코드의 음수는 상대적인 위치는 제외됩니다. 화면으로 변환 한 후

답변

1

내가 글로벌 X/Y 위치를 얻을 수 있습니다 (이 코드를 글로벌 마우스 이벤트를 소비하려면 다음 코드를 사용

Parent.PointToClient(screenpt) ; 
관련 문제