我有一個頁面,其底部有兩個文本框,一個複選框和另外兩個文本框。當鍵盤已經可見時,將焦點自動設置爲文本框
當我點擊複選框時,我想將焦點設置到它下面的文本框。 這工作正常,軟鍵盤出現,屏幕向上滾動顯示鍵盤上方的文本框。
但是,如果TextBox1或TextBox2當前處於焦點並且鍵盤已顯示,則從CheckBox_Click事件設置焦點將重置屏幕並向下滾動。
我猜的事件彼此衝突 - 文本框失去焦點,並隱藏鍵盤+滾動屏幕回落 - 文本框獲得重點從外部顯示鍵盤(但不卷屏幕)
這可以以某種方式防止嗎?
這裏是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();
}
感謝
嗯,首先,你應該注意:你的CheckBox_click事件不控制checkBox是否已經被選中。我看不到,這是怎麼發生的:** CheckBox_Click事件將重置屏幕,並向下滾動**在您的示例中無法看到任何滾動。你不想錯過什麼嗎? – Olter 2013-03-18 07:52:56