文本框获得不需要的焦点

TextBox gaining unwanted focus

我有一个简单的 xaml 页面,其中包含一个 TextBox 和一个 RichTextBlock。 在那个 RichTextBlock 里面有一些 InlineUIContainers。

但是当用户按下按钮时,我通过代码删除了一个 InlineUIContainer。一切顺利,但每次完成后,页面上的 TextBox 都会获得焦点! 导致弹出触摸键盘。任何人都知道为什么会这样?或者我怎样才能防止这种情况发生? 我无法设置 IsTabStop,因为如果需要,用户仍然必须能够填写一些内容。

我正在开发 WinRT 通用应用程序的 Windows Phone 部分

一些代码,但实际删除是在附加依赖项中完成的 属性 每次删除后获得焦点的是 KeywordsInput 文本框

<TextBox x:Uid="Search_KeywordsInput" x:Name="SearchKeywordsInput"
           Text="{Binding KeywordsInput, Mode=TwoWay}" />

<RichTextBlock Grid.Row="4"
           Margin="0,9.5,0,0"
           IsTextSelectionEnabled="False"
           dependencyProperties:RichTextBlockTagCloud.Command="{Binding SelectedTagFilterCommand}"
           dependencyProperties:RichTextBlockTagCloud.TagItems="{Binding SelectedFilters, Mode=TwoWay}">
<Paragraph x:Name="TagsFilters" />

foreach (InlineUIContainer container in buttonsToRemove)
    tagParagraph.Inlines.Remove(container);

如果您删除获得焦点的控件,则焦点将移至有效控件。在这种情况下,找到的下一个控件是您的 TextBox。如果在移除焦点按钮之前将焦点放在良性(非文本)控件上,则键盘将不会触发。

根据您的整体布局,您可以将焦点设置到页面上,您可以有另一个有意义的按钮,或者您可以将不可编辑的控件添加到 Tab 键顺序。

您是否尝试在 Button 上设置 IsTabStop=False,这样点击按钮就不会窃取 RichTextBox 焦点。