2014-09-01 58 views
1

我有Page包含一些控件,此頁面將被加載到ContentControlWindow中。如何將焦點限制在WPF中的控件

現在,如何限制我的Page的焦點週期?在我的頁面的最後一項中按TAB後,我不想將焦點傳遞給Page

作爲一個短暫的,我怎樣才能確定下一步的重點控制,改變它

+0

*你*試過了什麼? – Sheridan 2014-09-01 10:43:41

+0

啊,一個巨大的答案是一個小問題。 作爲示例: 1.對於除「頁面」之外的所有其他控件,將「Focusable」設置爲false,但它不專注於「Page」本身。因爲它包含在Window中。 2.動態改變'Page'中所有其他控件的'TabIndex'。它不起作用,因爲TabIndex無論如何都有一個值! 3.如此多,但我沒有流利的英語來形容他們。 – 2014-09-01 11:01:27

+0

我可以通過問這個問題來完成我的問題: 我如何確定下一個控件集中在代碼後面? – 2014-09-01 11:02:23

回答

1

它總是很難完全瞭解一個問題筆者想要什麼時,他們也懶得爲您提供多了幾個匆忙打字的線條。不過,據我瞭解你的問題,似乎你有一些關注WPF應用程序的問題。

首先要做的是引導您到MSDN上的Focus Overview頁面,在這裏您可以找到WPF中使用的不同焦點類型。特別是,請注意以編程方式導航焦點部分,其中討論TraversalRequest Class可幫助開發人員以編程方式移動焦點。

您還應該注意KeyboardNavigation部分討論KeyboardNavigation Class。此類包含一些屬性,使您能夠定義在各種情況下密鑰的工作方式,因此這可能是您所追求的內容。它是這樣使用(從MSDN上的最後一個鏈接頁面):

KeyboardNavigation.SetTabNavigation(navigationMenu, KeyboardNavigationMode.Cycle); 

以供將來參考,您將獲得更快,更準確的答案,如果你提供清晰的問題,其中包括您的所有需求當時張貼。

+0

我可以說一個真正的感謝!這就是我一直在尋找的。 也許如果我寫了「Cycle」,很容易回答。不過非常感謝。 – 2014-09-01 11:44:05

0

您是否嘗試過查看FocusLost事件 - 您可能可以使用事件處理程序重新調整頁面控件的焦點。

private void Page_LostFocus(object sender, System.Windows.RoutedEventArgs e) 
    { 
     ((UIElement)sender).Focus(); 
    } 
+0

是的,但它不起作用。 – 2014-09-01 11:48:02

+0

無論如何,看起來你現在已經有了一個可行的答案。 – kidshaw 2014-09-01 11:49:47