2012-10-19 35 views
1

我有一個WPF彈出窗口,它有幾個控件。用戶可以通過控件選項卡很好。但是,當到達最後一個控件時,選項卡會將焦點移回到Popup中的第一個控件。KeyboardNavigation.TabNavigation週期發生時的事件

我不想回到起點,而是想讓Popup關閉並將焦點移至Popup父項的下一個控件。

我已經看到了KeyboardNavigation.TabNavigation選項,但無論我將它們設置爲什麼,焦點總是循環(或禁用Tab鍵)。

有沒有辦法讓OnCycle事件,所以我可以手動關閉彈出?

回答

1

沒有任何事件會告訴你焦點何時迴轉。如果最後一個控件當前具有鍵盤焦點,則可以在第一個控件上添加PreviewGotKeyboardFocus事件的處理程序,並關閉Popup。但是如果用戶明確地從最後一個控件點擊到第一個控件,這也會關閉彈出窗口。

我可能會把一個不可見的控件放在你最後一次控制按Tab鍵順序。因此,當用戶從最後一個控件中選擇標籤時,不可見控件將獲得焦點,並且您將知道關閉該彈出窗口。

+0

你的隱形控制想法非常棒!謝謝! – Vaccano