我有一個WPF應用程序,其中有ListBox
。對於這個列表框,我想模仿用戶控制面板(自Windows Vista以來)的行爲 - 即:您單擊列表項目,與雙擊相同。WPF相當於LVS_EX_ONECLICKACTIVATE?
在Win32中,我會通過打開LVS_EX_ONECLICKACTIVATE樣式來完成此操作。
在WPF中,我試圖通過處理MouseLeftButtonUp
事件來做到這一點。不幸的是,這很奇怪,它有時會挑選錯誤的項目。
例如,如果您雙擊標題欄(標題)以最大化窗口,則會在列表框中出現第二次鼠標懸停並引發事件。同樣,如果一個項目部分在視圖中,點擊它將其滾動到視圖中,但是對於在視圖中現在爲的項目引發了鼠標移動,而不是單擊該項目。
現在,再次,如果這是Win32(在LVS_EX_ONECLICKACTIVATE之前),我將鼠標捕獲到鼠標上,記住項目,並檢查我是否已經捕獲鼠標。
但它不是Win32,它是WPF。如何在WPF列表框中單擊激活?
這可能會工作,但我也想知道是否有一種方法來獲得鍵盤可訪問性,一鍵式激活讓你在Win32中。 – 2010-09-17 09:44:49
好吧,當使用箭頭鍵進行導航時,「SelectionChanged」事件可能也會觸發,這當然是不可接受的。 – 2010-09-17 12:00:57