2010-01-28 41 views
0

我有鍵盤焦點問題。 這是如何工作的,現在(不正確):WPF KeyboardFocus彈出問題

  1. 文本框
  2. MyControl
  3. 如果MyControl.PopupShowed然後 GOTO 1,否則,轉至4.
  4. 組合框

我想通過P​​opup Close繼續使用最後一個標籤焦點,即意味着從3跳到4.

請問我該怎麼做?

<Window> 
... 
<TextBox /> 

<MyControl> 
    ... 
    <Popup> 
    </Popup> 
</MyControl> 

<ComboBox /> 
... 
</Window> 


FocusableProperty.OverrideMetadata(typeof(ListPicker), new FrameworkPropertyMetadata(true)); 

回答

1

這是做這種事情的一種方法。如果它不適合你的情況,你可以調整它以適應你的需求。爲按鍵設置事件處理程序(可能在窗口中)。如果您在按下Tab鍵時發現正在處理事件,請使用預覽鍵。

internal void OnKeyDown(object sender, KeyEventArgs e) 
    { 
     if (e.Key == Key.Tab && MyControl.PopupShowed) 
     { 
      MyControl.ClosePopup() 
      window.MoveFocus(new TraversalRequest(FocusNavigationDirection.Next)); 
      e.Handled = true; 
     } 
    }