2 つのテキスト ボックス、チェック ボックス、および下部にある別の 2 つのテキスト ボックスを含むページがあります。
チェックボックスをクリックすると、その下のテキストボックスにフォーカスを設定したい。これは問題なく動作し、ソフト キーボードが表示され、画面が上にスクロールしてキーボードの上にテキスト ボックスが表示されます。
ただし、TextBox1 または TextBox2 のいずれかに現在フォーカスがあり、キーボードが既に表示されている場合、CheckBox_Click イベントからフォーカスを設定すると、画面がリセットされ、下にスクロールされます。
イベントが互いに衝突すると推測しています-TextBoxはフォーカスを失い、キーボードを隠します+画面を下にスクロールします-TextBoxは外部からフォーカスを取得し、キーボードを表示します(ただし、画面を上にスクロールしません)
これをどうにかして防ぐことはできますか?
これは、xaml とコードの簡略化されたバージョンです。
xaml:
<Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
<StackPanel Margin="0,100,0,0">
<TextBox x:Name="TextBox1" />
<TextBox x:Name="TextBox2" />
<CheckBox Content="Click Me" Click="CheckBox_Click" />
<TextBox x:Name="TextBox3" />
<TextBox x:Name="TextBox4" />
</StackPanel>
</Grid>
コードビハインド:
private void CheckBox_Click(object sender, RoutedEventArgs e)
{
TextBox3.Focus();
}