1

私はそのコンテンツStackPanelがいくつかの要素を含むで構成されているエキスパンダーを持っています。そのうちの1つはTextBoxです。

Expanderキーボードフォーカスを取得する必要がある拡張時に、TextBoxこれを行うにはどうすればよいですか?

私は試した:

Private Sub xp_Expanded(sender As Object, e As RoutedEventArgs) _
    Handles xpUnits.Expanded
        stackPanel.Focus()
        Keyboard.Focus(textBox)
  textBox.Focus()
End Sub

FocusManager.IsFocusableに設定しFocusManager.FocusedElementてからTextBox電話をかけようとしましたstackPanel.Focus()が、うまくいきませんでした。

4

2 に答える 2

4

フォーカスを設定しようとすると、おそらくあなたTextBoxはまだ表示されていません。にイベントハンドラを追加し、そこにフォーカスを設定するIsVisibleChanged必要があります。TextBox内部では、次にイベントハンドラーが呼び出されたときにフォーカスする必要がxp_Expandedあるブールフラグを設定する必要があります。TextBoxIsVisibleChanged

于 2010-09-19T20:33:27.080 に答える
0

この答えは私の問題を簡単に解決しました:

<TextBox Text="{Binding Title}"
  FocusManager.FocusedElement="{Binding RelativeSource={RelativeSource Self}}"/>
于 2010-11-19T00:17:30.873 に答える