单击ScrollViewer内部时,为什么我的TextBox会聚焦?

Bre*_*aut 4 windows xaml windows-runtime

在我的Windows应用商店应用中,我创建了一个ScrollViewer(里面有一个Grid),里面有几个TextBox.每当用户点击ScrollViewer中的任何位置时,第一个TextBox就会被聚焦.我不知道为什么会这样,而且肯定不是我想要的行为.

这只是XAML尝试"有帮助"的症状吗?我该如何预防呢?


编辑:我发现了一个线索.这只发生在我的TextBoxes在ScrollViewer中时.它也出现在C++和C#项目中,因此它显然是XAML/WinRT的症状.添加示例XAML:

使用以下XAML,如果我聚焦第二个TextBox然后单击框之间边距中的任意位置,则第一个TextBox会自动聚焦.我不希望它成为焦点.

<ScrollViewer Background="#111111"
              VerticalScrollBarVisibility="Auto">
  <Grid>
    <Grid.RowDefinitions>
      <RowDefinition />
      <RowDefinition />
      <RowDefinition />
    </Grid.RowDefinitions>

    <TextBox Grid.Row="0" />
    <TextBox Grid.Row="1" />
  </Grid>
</ScrollViewer>
Run Code Online (Sandbox Code Playgroud)

Bre*_*aut 8

找到了解决方案!设置ScrollViewer会TabStop="true"阻止此行为.

  • 我有同样的问题,但在我的scrollviewer上找不到tabstop函数.你能解释一下我能在哪里找到它吗?AHHH得到了它.它被称为IsTabStop,就像一个魅力.谢谢! (3认同)