Почему текстовое поле всегда фокусируется, когда я щелкаю пустую область страницы?
Как показано на рисунке, мое текстовое поле находится вверху прокрутки. Но когда я прокручиваю вниз и щелкаю пустую область, текстовое поле всегда фокусируется.
Это раздражает.
Как удалить автофокус с текстового поля?
<ScrollViewer Grid.Row="1" Padding="5" Style="{StaticResource ScrollViewerAppleStyle}">
<Grid>
<Grid.RowDefinitions>
<RowDefinition MinHeight="100" MaxHeight="400"/>
<RowDefinition Height="60"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="60"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="60"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="60"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="60"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="60"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="60"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<TextBox Text="欢迎使用小冰科技最新研发的自然语言处理程序。" x:Name="textInput" x:Uid="textBox_Input" TabIndex="-1" BorderBrush="Gray" BorderThickness="1" TextWrapping="Wrap" AcceptsReturn="True" Style="{StaticResource TransparentBackgroundTextBoxStyle}" ScrollViewer.VerticalScrollBarVisibility="Auto"/>
Other controls.......
</Grid>
</ScrollViewer>
1 ответ
У меня была та же проблема, которую легко исправить, когда IsTabStop
свойство ScrollViewer установлено в True
,
<ScrollViewer IsTabStop="True">
//your code with TextBox in here
</ScrollViewer>
Я также испытал эту немного раздражающую ошибку, которая, когда в сочетании с ScrollViewer
приводит к очень нежелательному поведению.
Кажется, что когда вы теряете фокус ранее сфокусированного элемента управления, фокус должен быть назначен другому элементу управления. TextBox
это первый элемент управления, "фокусируемый" на вашей странице, и, следовательно, ему будет уделено внимание, что приведет к ScrollViewer
вынужден изменить свой вид на вертикальное смещение, где TextBox
определяется в.
Самым простым вариантом было бы LostFocus
событие и назначить фокус другому элементу управления, который не вызовет такой заметной проблемы.
Я полагаю, что причина такого поведения заключается в том, чтобы не испортить опыт пользователей, использующих только клавиатуру.