在MouseMove事件中识别TreeView项目鼠标是否结束

本文关键字:项目 鼠标 是否 结束 TreeView 识别 MouseMove 事件 | 更新日期: 2023-09-27 18:09:56

我有一个包含许多项目的树视图。每个项都是显示在另一个控件中的3D对象的部件名称。我希望能够将鼠标移动到项目上并识别我所经过的项目。这样我就可以将项目id传递给另一个控件,在那里我可以突出显示该部件。

注意,我已经可以在click事件中这样做了,但是我现在需要在没有任何点击的情况下完成它。

如何在TreeView的Mousemove事件中做到这一点?

在MouseMove事件中识别TreeView项目鼠标是否结束

您有一个类"System.Windows.Input "。鼠标",它可以提供一些信息,如direclyover

但是它可以返回给你UIElement的顶层所以treeviewself。

我认为另一个解决方案可能是递归地测试鼠标相对于项目的位置。

使用Mouse.GetPosition(UIELEMENT),如果位置返回是负的在一个坐标或高于控件的大小,这意味着你不在控件的HitTestRectangle。

你也可以使用VisualTreeHelper。FindElementsInHostCoordinates使用大小为1的rect在相对位置关于你的树视图(Mouse.GetPosition(treeview)),你给在第二个参数所有的树视图本身。