单击页面的空白区域时,为什么文本框始终处于焦点位置?

时间:2018-04-19 09:45:33

标签: uwp textbox uwp-xaml

enter image description here

正如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>

2 个答案:

答案 0 :(得分:0)

我也经历过这个有点烦人的错误,当与ScrollViewer一起导致非常不受欢迎的行为时。

似乎当您松开先前聚焦的控件的焦点时,必须为另一个控件分配焦点。 TextBox是您网页上的第一个控件“可聚焦”,因此它将成为焦点,这会导致ScrollViewer被迫将其视图更改为垂直偏移TextBox的定义位置。

最简单的选择是处理LostFocus事件,并将焦点分配给另一个不会导致这个显着问题的控件。

我猜这种行为发生的原因是不会破坏仅限键盘用户的体验。

答案 1 :(得分:0)

我有同样的问题,当ScrollViewer的IsTabStop属性设置为True时,很容易解决。

<ScrollViewer IsTabStop="True">
    //your code with TextBox in here
</ScrollViewer>