【问题标题】:Why does my TextBox get focused when clicking inside of ScrollViewer?为什么单击 ScrollViewer 内部时我的 TextBox 会获得焦点?
【发布时间】:2013-01-23 22:52:07
【问题描述】:

在我的 Windows 应用商店应用程序中,我创建了一个 ScrollViewer(里面有一个 Grid),里面有几个 TextBox。每当用户单击 ScrollViewer 中的任何位置时,都会聚焦第一个 TextBox。我不知道为什么会发生这种情况,而且这肯定不是我想要的行为。

这只是 XAML 试图“提供帮助”的一个症状吗?如何预防?


编辑:我找到了线索。这只发生在我的文本框位于 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>

【问题讨论】:

  • "带有几个文本框的边框"??一个边框只能有一个子元素...你能分享你的 XAML 代码吗?
  • 对不起,我应该更具体。这是一个带有网格的边框,其中有几个文本框分布在不同的单元格中。我将编辑我的问题以澄清。
  • 我现在已经发布了我的 XAML 以及一条新线索 - 看起来只有当 TextBox 位于 ScrollViewer 中时才会发生这种情况。

标签: windows xaml windows-runtime


【解决方案1】:

找到了解决办法!设置 ScrollViewer 的 TabStop="true" 可以防止这种行为。

【讨论】:

  • 我遇到了同样的问题,但在我的滚动查看器上找不到制表符功能。你能解释一下我在哪里可以找到它吗?啊哈明白了。它被称为 IsTabStop,就像一个魅力。谢谢!
  • UWP 页面也有这个问题,很好用。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多