簡體   English   中英

在MouseMove事件中確定TreeView Item鼠標已結束

[英]Identify TreeView Item mouse is over in MouseMove event

我有一個Treeview,其中包含許多項。 每個項目都是在另一個控件中顯示的3D對象的零件名稱。 我希望能夠將鼠標移到這些項目上,並識別出我過去的項目。 這樣一來,我就可以將項目ID傳遞給另一個控件,在其中可以突出顯示該零件。

請注意,我已經可以通過click事件執行此操作,但是現在無需單擊任何操作就可以執行此操作。

如何在TreeView的Mousemove事件中執行此操作?

您擁有“ System.Windows.Input.Mouse”類,可以為您提供一些信息,例如DirectlyOver

但是它可能會返回UIElement的頂層,即TreeviewItSelf。

我認為另一種解決方案可能是遞歸測試鼠標相對於該項的位置。

如果位置返回值在控件尺寸的坐標之一或上方大於1,則表示使用Mouse.GetPosition(UIELEMENT) ,這意味着您不在控件的HitTestRectangle中。

您還可以在樹視圖的相對位置(Mouse.GetPosition(TREEVIEW))使用大小為1的矩形使用VisualTreeHelper.FindElementsInHostCoordinates,並在第二個參數中提供所有樹視圖本身。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM