Template10:AppBarButton:TextBox内容不允许用户输入空格

时间:2016-01-22 00:46:08

标签: c# xaml winrt-xaml template10

我在使用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>

1 个答案:

答案 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;
    }
}

像魅力一样:

enter image description here

祝你好运!