我正在为我支持拖放的树视图实现拖放操作。
树中包含文件夹和文件。当我拖动文件夹底部的25%时,我希望它重新排序。当我拖过treeviewitem的前75%时,我希望它将内容删除到文件夹中。
如何确定我在元素中的位置?这是我的尝试不起作用:
private bool ShouldReorder(TreeViewItem targetItem)
{
var relativePosition = PointToScreen(Mouse.GetPosition(targetItem));
return relativePosition.Y/targetItem.ActualHeight < 0.25;
}
此代码的相对位置为负数。
答案 0 :(得分:1)
将其转换为屏幕坐标后,您可以将其转换回父控件的客户端坐标
Parent.PointToClient(screenpt) ;
答案 1 :(得分:0)
我使用以下代码来使用全局鼠标事件(无论窗口焦点如何,此代码也可以获取全局x / y位置数据):
http://www.codeproject.com/Articles/7294/Processing-Global-Mouse-and-Keyboard-Hooks-in-C
我的课程:
http://www.codeproject.com/Articles/347795/Inactivity-Logoff