无法在 <controls:PageHeader.PrimaryCommands> 中的 TextBox 中设置焦点和键入文本
Can not set focus and type text in TextBox placed in <controls:PageHeader.PrimaryCommands>
我正在使用 Template10。这部分代码使用名为 searchTextBox 的 TextBox 和按钮创建工具栏。问题是我无法向 TextBox 写入任何字符。我可以通过右键单击粘贴一些文本。此文本框已启用且不是只读的。
<!-- header -->
<controls:PageHeader x:Name="pageHeader" x:Uid="LoadViewHeader"
RelativePanel.AlignLeftWithPanel="True" RelativePanel.AlignRightWithPanel="True"
RelativePanel.AlignTopWithPanel="True">
<!-- primary commands -->
<controls:PageHeader.PrimaryCommands>
<AppBarButton Name="searchButton" Width="250" Padding="0">
<AppBarButton.Template>
<ControlTemplate>
<TextBox Name="searchTextBox" x:Uid="LoadViewSearchBox" Width="250" Height="32" Margin="0,8,0,0"
Text="{Binding Path=TextToSearch, Mode=TwoWay}" TextChanged="SearchTextBox_TextChanged" />
</ControlTemplate>
</AppBarButton.Template>
</AppBarButton>
<AppBarButton Name="searchTextBoxButton" x:Uid="LoadViewSearchTextBoxButton" Icon="Find" Label="Search" />
<AppBarSeparator/>
</controls:PageHeader.PrimaryCommands>
</controls:PageHeader>
Visual studio 团队专家将此问题确定为 UWP 中的错误。
最后我用了两个 header 一个来显示文本 header 第二个用于搜索。
<!-- page header -->
<controls:PageHeader x:Name="pageHeader" x:Uid="LoadViewHeader" Width="auto"
RelativePanel.AlignLeftWithPanel="True" RelativePanel.AlignTopWithPanel="True" RelativePanel.LeftOf="searchPageHeader">
<controls:PageHeader.SecondaryCommands>
<AppBarButton Label="Settings" />
</controls:PageHeader.SecondaryCommands>
</controls:PageHeader>
<!-- searching header -->
<controls:PageHeader x:Name="searchPageHeader" Width="auto" EllipsisVisibility="Collapsed"
RelativePanel.AlignTopWithPanel="True" RelativePanel.AlignRightWithPanel="True">
<controls:PageHeader.Content>
<AutoSuggestBox Name="searchTextBox" x:Uid="LoadViewSearchBox" Width="250" Height="32" Margin="0,8,8,0" QueryIcon="Find" >
<interactivity:Interaction.Behaviors>
<core:EventTriggerBehavior EventName="QuerySubmitted">
<core:InvokeCommandAction Command="{x:Bind ViewModel.SearchCommand}" />
</core:EventTriggerBehavior>
</interactivity:Interaction.Behaviors>
</AutoSuggestBox>
</controls:PageHeader.Content>
</controls:PageHeader>
我正在使用 Template10。这部分代码使用名为 searchTextBox 的 TextBox 和按钮创建工具栏。问题是我无法向 TextBox 写入任何字符。我可以通过右键单击粘贴一些文本。此文本框已启用且不是只读的。
<!-- header -->
<controls:PageHeader x:Name="pageHeader" x:Uid="LoadViewHeader"
RelativePanel.AlignLeftWithPanel="True" RelativePanel.AlignRightWithPanel="True"
RelativePanel.AlignTopWithPanel="True">
<!-- primary commands -->
<controls:PageHeader.PrimaryCommands>
<AppBarButton Name="searchButton" Width="250" Padding="0">
<AppBarButton.Template>
<ControlTemplate>
<TextBox Name="searchTextBox" x:Uid="LoadViewSearchBox" Width="250" Height="32" Margin="0,8,0,0"
Text="{Binding Path=TextToSearch, Mode=TwoWay}" TextChanged="SearchTextBox_TextChanged" />
</ControlTemplate>
</AppBarButton.Template>
</AppBarButton>
<AppBarButton Name="searchTextBoxButton" x:Uid="LoadViewSearchTextBoxButton" Icon="Find" Label="Search" />
<AppBarSeparator/>
</controls:PageHeader.PrimaryCommands>
</controls:PageHeader>
Visual studio 团队专家将此问题确定为 UWP 中的错误。
最后我用了两个 header 一个来显示文本 header 第二个用于搜索。
<!-- page header -->
<controls:PageHeader x:Name="pageHeader" x:Uid="LoadViewHeader" Width="auto"
RelativePanel.AlignLeftWithPanel="True" RelativePanel.AlignTopWithPanel="True" RelativePanel.LeftOf="searchPageHeader">
<controls:PageHeader.SecondaryCommands>
<AppBarButton Label="Settings" />
</controls:PageHeader.SecondaryCommands>
</controls:PageHeader>
<!-- searching header -->
<controls:PageHeader x:Name="searchPageHeader" Width="auto" EllipsisVisibility="Collapsed"
RelativePanel.AlignTopWithPanel="True" RelativePanel.AlignRightWithPanel="True">
<controls:PageHeader.Content>
<AutoSuggestBox Name="searchTextBox" x:Uid="LoadViewSearchBox" Width="250" Height="32" Margin="0,8,8,0" QueryIcon="Find" >
<interactivity:Interaction.Behaviors>
<core:EventTriggerBehavior EventName="QuerySubmitted">
<core:InvokeCommandAction Command="{x:Bind ViewModel.SearchCommand}" />
</core:EventTriggerBehavior>
</interactivity:Interaction.Behaviors>
</AutoSuggestBox>
</controls:PageHeader.Content>
</controls:PageHeader>