我试图实现一个点击和拖动选择,如在Windows资源管理器(当你保持鼠标按下,你移动鼠标时发生的蓝色选择矩形)。鼠标输入/鼠标离开和鼠标左键按下
所以基本上我有一个ListView,带有样式和模板ListViewItem。 我在我的ListViewItem上添加了MouseEnter和MouseLeave事件(使用EventSetter), 除了当鼠标左键关闭时,它工作正常。 在这种情况下,事件不会被解雇,这不利于我想实现的目标。
你知道吗,如果有什么好的解决方法,我想知道什么时候我在某件物品上或者没有按下鼠标左键时。
现在我已经尝试了VisualTreeHelper.HitTest(),但我只知道当我穿过ListViewItem,并且我需要知道什么时候离开它。
谢谢。
这种方法的问题是,我的项目只有当用户释放鼠标按钮时才会被选中,在我的情况下,我想更接近Windows资源管理器的行为,这意味着当鼠标/“蓝色选择矩形时选择/取消选择项目“是在一个项目。 如果我在完成作业后做了选择,但外观和用户体验不如预期好,我想尽可能保持与Windows默认行为的一致性。 – StrAbZ 2011-01-28 17:24:43
然后你可以在`ListView`上处理`MouseMove`,测试各个鼠标按钮是否关闭,并检查`Mouse.DirectlyOver`是否返回`ListViewItem`。如果是这样,您可以选择它并/或取消选择鼠标放在最后的项目。有点复杂,但它只是一点逻辑交互。 – 2011-01-28 17:31:55