ユーザーがタブを押したときに、エキスパンダー内の最初の要素にフォーカスする必要があるというこの要件があります。
現在 (既定の動作) フォーカスはエキスパンダーに移動します。次のように、エキスパンダーにフォーカス イベント ハンドラーを作成して、エキスパンダーの最初の要素にフォーカスしようとしました。
private void ExpanderGotFocus(object sender, RoutedEventArgs e)
{
var expander = (Expander) sender;
if (!expander.IsExpanded)
{
expander.IsExpanded = true;
this._someText.Focus();
}
}
これは機能しません。
また、次の要素にフォーカスを当てようとしました。
var tRequest = new TraversalRequest(FocusNavigationDirection.Next);
var keyboardFocus = Keyboard.FocusedElement as UIElement;
keyboardFocus.MoveFocus(tRequest);
ただし、2回目のみ機能します(エキスパンダーが少なくとも1回開かれた場合)
これをスレッドやその他のクレイジーなアイデアに入れようとしました。
エキスパンダー内の最初の要素にフォーカスを与えるにはどうすればよいですか? (エキスパンダーを初めて閉じたとき)