我在使用template10(https://github.com/Windows-XAML/Template10)时出现了一个奇怪的问题,当我试图将一个TextBox放在AppBarButton元素中时,空格键不起作用(当你按空格键时没有任何反应你需要等待它开始工作前3/4秒)。但是其他每一把钥匙都在工作......
任何人都知道我做错了什么?
以下是简单的XAML代码:
<AppBarButton Icon="Find" Visibility="Visible">
<AppBarButton.Content>
<TextBox Width="100" />
</AppBarButton.Content>
</AppBarButton>
我遇到了同样的问题:
<AppBarButton Visibility="Visible">
<AppBarButton.Content>
<TextBox Width="100" />
</AppBarButton.Content>
</AppBarButton>
@Chris W: 这是你想让我尝试的吗?添加弹出元素似乎有点奇怪吗?
<AppBarButton Visibility="Visible" Width="100">
<AppBarButton.Content>
<Popup IsOpen="True" >
<TextBox Width="100" />
</Popup>
</AppBarButton.Content>
</AppBarButton>
答案 0 :(得分:2)
首先,当Content
属性可用时,这是一个奇怪的想法。但是,嘿,你是开发人员,你知道你的应用程序。不是我。
好的,问题是因为AppBarButton
清楚地抓住空间并处理它。您可以通过这种简单的方法克服这个问题:
<controls:PageHeader Content="Main Page">
<AppBarButton Width="250" Padding="0">
<AppBarButton.Template>
<ControlTemplate>
<TextBox Width="250" Height="32" Margin="0,8,0,0"
KeyUp="TextBox_KeyUp" />
</ControlTemplate>
</AppBarButton.Template>
</AppBarButton>
<AppBarButton Icon="Find" />
</controls:PageHeader>
然后是这个处理程序:
private void TextBox_KeyUp(object sender, Windows.UI.Xaml.Input.KeyRoutedEventArgs e)
{
if (e.Key == Windows.System.VirtualKey.Space)
{
var textBox = sender as TextBox;
textBox.SelectionStart = (textBox.Text += " ").Length;
}
}
像魅力一样:
祝你好运!