我試圖實現一個點擊和拖動選擇,如在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