正如gif所示,我的文本框位于滚动查看器的顶部。但是当我向下滚动并单击空白区域时,文本框始终会聚焦。
这很烦人。
如何删除文本框的自动聚焦?
<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>
答案 0 :(得分:0)
我也经历过这个有点烦人的错误,当与ScrollViewer
一起导致非常不受欢迎的行为时。
似乎当您松开先前聚焦的控件的焦点时,必须为另一个控件分配焦点。
TextBox
是您网页上的第一个控件“可聚焦”,因此它将成为焦点,这会导致ScrollViewer
被迫将其视图更改为垂直偏移TextBox
的定义位置。
最简单的选择是处理LostFocus
事件,并将焦点分配给另一个不会导致这个显着问题的控件。
我猜这种行为发生的原因是不会破坏仅限键盘用户的体验。
答案 1 :(得分:0)
我有同样的问题,当ScrollViewer的IsTabStop
属性设置为True
时,很容易解决。
<ScrollViewer IsTabStop="True">
//your code with TextBox in here
</ScrollViewer>