如果在按住鼠標按鈕的同時WPF列表框獲取MouseMove事件,它將更改列表框的選擇。也就是說,如果您在項目#1上單擊鼠標,然後拖到項目#2上,它將取消選擇項目#1並選擇項目#2。 我該如何預防?防止WPF列表框在佈局更改時在鼠標下選擇項目
這是簡短的版本。稍微長一點的版本是這樣的:當用戶雙擊我的ListBox中的一個項目時,我對我的佈局做了其他更改,其中包括在ListBox上方顯示其他控件。這將ListBox向下移動,這意味着鼠標現在位於與用戶雙擊時不同的ListBoxItem上。
由於我在響應DoubleClick事件(這是一個鼠標按下事件)時進行了這些佈局更改,所以當此佈局更改完成時,很可能仍會按下鼠標按鈕,這意味着WPF將發送ListBox一個MouseMove事件(因爲鼠標的位置相對於ListBox已經改變)。 ListBox將其視爲拖動,並選擇鼠標下面的事件。
我不希望選擇在我得到雙擊事件和用戶釋放鼠標的時間(在佈局更改後可能會很好)之間進行更改。我懷疑最簡單的方法是禁用「更改拖放選擇」行爲,但我願意接受其他建議。
我怎樣才能「鎖定」雙擊選擇,並防止它改變,直到mouseup?
幫助解決列表項拖放操作期間的選擇更改。謝謝。 – 2012-08-23 22:37:40
如果我們移除鼠標向下事件中的選定項目,'ParentSelector'將爲'null'。我們可以使用null檢查'ParentSelector?.ReleaseMouseCapture()'來解決這個問題。 – J3soon 2017-05-19 13:58:48
@ J3soon很好的建議。更新。 – 2017-05-21 19:11:50