2009-09-12 32 views
1

我想用箭頭鍵在我的窗口中導航。它工作到目前爲止,但如果我達到我的窗口的結束,重點回覆到第一個主菜單項。但我想讓焦點停在我窗口的最後一個控件上。WPF:KeyboardNavigationMode.Contained無法抑制聚焦換行

private void Window_PreviewKeyDown(object sender, KeyEventArgs e) 
{ 
    if (e.Key == Key.Down) 
    { 
    elem.MoveFocus(FocusNavigationDirection.Next); 
    } 
} 

「elem」是「stackPanel」的間接子控件。 MoveFocus總是返回true,我已經嘗試過了: KeyboardNavigation.SetTabNavigation(stackPanel,KeyboardNavigationMode.Contained); KeyboardNavigation.SetDirectionalNavigation(StackPanel中,KeyboardNavigationMode.Contained); KeyboardNavigation.SetControlTabNavigation(stackPanel,KeyboardNavigationMode.Contained);

沒有幫助。

回答

0

如何使用TraversalRequest實例?

if (e.Key == Key.Down) 
{ 
    e.Handled = true; 
    elem.MoveFocus(new TraversalRequest 
    { 
     FocusNavigationDirection = FocusNavigationDirection.Next, 
     Wrapped = false 
    }); 
} 

請注意,MSDN documentation for TraversalRequest.Wrapped表示它默認爲false,因此焦點不應該換行。

+0

我現在試過這個,但它沒有工作。遍歷完所有控件之後,它繼續從我的主窗口中選擇mainmenu項目。 – codymanix 2009-09-18 00:04:51