TextBox获得了不必要的焦点

时间:2015-01-11 19:25:34

标签: xaml windows-phone-8.1 winrt-xaml

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

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

我正在使用WinRT Universal应用程序的Windows Phone部分

某些代码,但实际的删除是在附加的依赖项属性中完成的 它是在每次删除后获得焦点的关键字输入文本框

<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);

2 个答案:

答案 0 :(得分:2)

您是否尝试在IsTabStop=False上设置Button,因此点击按钮不会抢占RichTextBox焦点。

答案 1 :(得分:0)

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

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