所以我为列表视图启用了拖放功能,但我注意到UIelement.IsMouseOver
在拖放操作期间不起作用。
来源:“这是因为当我们进行拖放操作时,WPF会阻止所有鼠标操作。您可以使用带有动画的EventTrigger
来执行此操作。”
但是,我很好奇为什么拖放操作会阻止鼠标操作。如果是这种情况,我应该如何在拖放操作期间测试鼠标是否在元素上
int GetIndexOfListViewItemMouseIsOver(ListView listview)
{
for (int i = 0; i < listview.Items.Count; ++i)
{
ListViewItem item = listview.ItemContainerGenerator.ContainerFromItem(listview.Items[i]) as ListViewItem;
if (item != null && item.IsMouseOver)
{
return i;
}
}
return -1;
}
答案 0 :(得分:3)
使用此方法:VisualTreeHelper.HitTest
。您应该在拖放事件参数中具有鼠标位置(我假设存在但未显示)。我不确定传递到HitTest
的点所需的参考框架。