3

私は Windows Phone を使用しています。新しいイベントを作成するときのカレンダー アプリの動作を再現したいと考えています。名前のテキスト ボックスをタッチして、ソフト キーボードのエンター キーを押すと、アプリはフォーカスをこのテキスト ボックスからすぐ下のテキスト ボックスに移動します。

自分のアプリでそれを行う方法がわかりません。

IsTabStop + TabIndex プロパティ、そしておそらく TabNavigation を使用する必要があると推測しました。

しかし、それらを設定しても何も変わりません。

そのように:

<TextBox
  IsTabStop="True"
  TabIndex="1" />
<TextBox
  IsTabStop="True"
  TabIndex="2" />

それは単純な振る舞いであり、なぜ私だけでそれを理解できないのか理解できません。

ありがとう。

4

2 に答える 2

5

KeyDownのイベントを使用しtextBox1ます。次の方法でフォーカスを確認しif (e.Key == Key.Enter || e.PlatformKeyCode == 0x0A)て別のテキストボックスに変更しますtextBox2.Focus()

于 2012-09-04T08:55:46.427 に答える
4

これを行うには 2 つの方法が考えられます。

最初のケースでは、前後のフィールドがわかっているので、動作をハードコーディングできます。ユーザーが textbox1 で「Enter」を押すと、textbox2 にフォーカスが移ります。

編集:これはまさに@ milan-aggarwalが言ったことです

2 番目のより一般的なアイデアは、VisualTreeHelper ( http://msdn.microsoft.com/fr-fr/library/system.windows.media.visualtreehelper.aspx ) を使用することです。

ユーザーが「Enter」を押すと (これは簡単に検出できます)、VisualTreeHelper を使用して、次のテキスト ボックス (または別の種類の UI コンポーネント) を選択してフォーカスするために、取り込みパネルの子を調べます。

同じことを行うためのネイティブ ソリューションがあるかどうかはわかりません。

于 2012-09-04T08:58:54.107 に答える