2012-01-18 73 views
0

當WPF TabControl具有焦點時,可以使用箭頭鍵切換活動選項卡。但是,在到達最終選項卡後,它會再次循環回第一個選項卡。我想阻止這種情況發生,因此用戶可以在應用程序中獲得更多應該做的事情。 任何想法?謝謝。TabControl循環回第一個選項卡。這可以防止嗎?

回答

0

我試過這個使用SelectionChanged事件的相當嚴厲的方法。除了在「loginTab」條目上仍然顯示虛線焦點指示符,即使TabControl繼續按照預期顯示「lastTab」,它也能完成這項工作。 Focus()調用不關注最後一個選項卡。

private void TabControl_SelectionChanged(object sender, SelectionChangedEventArgs e) 
    { 
     if (e.Source == wizardTabs && e.RemovedItems.Count != 0 && e.AddedItems.Count != 0) 
     { 
      TabItem fromItem = e.RemovedItems[0] as TabItem; 
      TabItem toItem = e.AddedItems[0] as TabItem; 

      if (fromItem.Name == "lastTab" && toItem.Name == "firstTab") 
      { 
       e.Handled = true; 
       wizardTabs.SelectedItem = fromItem; 
       fromItem.Focus(); 
      } 
     } 
    } 
+0

您可能想編輯此答案並刪除問題部分以防止其被刪除。在該特定問題上創建一個新問題。 – Till 2012-01-19 14:45:16

0

如果需要按特定順序完成這些步驟,請不要使用選項卡控件。

您應該在這種情況下使用嚮導界面。

另一方面,如果步驟不需要按照特定的順序完成,我不知道爲什麼要給用戶那種印象。

+0

由於沒有官方的「嚮導控制」,大多數網站都建議用戶創建自己的嚮導,以他們想要的方式工作。這就是我想要做的,作爲其中的一部分,我想阻止從最後一個選項卡到第一個選項卡的循環。這就是爲什麼。另外,我的應用程序不是官方的嚮導 - 用戶可能希望在選項卡之間跳轉以輸入所需的信息。 – Jarvis 2012-01-18 19:58:22

0

您是否嘗試將附加屬性KeyboardNavigation.DirectionalNavigation設置爲TabControlOnce

+0

感謝您的建議,但沒有沒有工作。 – Jarvis 2012-01-19 14:15:48

相關問題