【发布时间】:2016-08-23 09:00:39
【问题描述】:
我想使用CommandBar 和Flyout 来构建这样的东西。
用户应单击CommandBar 中的按钮(Flyout 打开),然后在TextBox 中输入文本,然后单击TextBox 右侧的按钮开始搜索请求。
问题是,当我单击 TextBox 时,我无法输入文本。在我写点什么之前,它似乎失去了焦点。下面是示例代码。怎么了?
<Page.Resources>
<DataTemplate x:Key="Search">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="200" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<TextBox Grid.Column="0" />
<AppBarButton Grid.Column="1" Icon="Find" />
</Grid>
</DataTemplate>
</Page.Resources>
<Grid>
<CommandBar RequestedTheme="Dark">
<AppBarButton Icon="Find">
<AppBarButton.Flyout>
<Flyout Placement="Bottom" >
<ContentPresenter ContentTemplate="{StaticResource Search}"/>
</Flyout>
</AppBarButton.Flyout>
</AppBarButton>
</CommandBar>
</Grid>
【问题讨论】:
-
我无法重现您的问题。您提供的代码一切正常。您是否在代码隐藏中阻止了该文本框?
-
请注意这一点,在触摸屏设备上,屏幕键盘可能位于浮出控件顶部的层中,从而有效地隐藏了文本框。然后,如果您想通过单击屏幕上弹出按钮之外的区域来隐藏键盘,这也会关闭弹出按钮。不是一个很好的用户体验
标签: c# xaml uwp flyout commandbar