0

我正在为支持拖放的树视图实现拖放。

树中有文件夹和文件。当我拖过文件夹底部的 25% 时,我希望它重新排序。当我拖动树视图项的顶部 75% 时,我希望它把内容放到文件夹中。

如何确定我在元素中的位置?这是我的尝试不起作用:

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

此代码的相对位置为负。

4

2 回答 2

1

将其转换为屏幕坐标后,您可以将其转换回父控件的客户端坐标

Parent.PointToClient(screenpt) ;
于 2012-04-19T22:28:34.407 回答
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

于 2012-04-19T23:22:59.403 回答