3

当我尝试在 AppBarButton 元素中放置一个 TextBox 时,我遇到了一个关于 template10 ( https://github.com/Windows-XAML/Template10 )的奇怪问题,空格键不起作用(当你按下空格键时什么都没有碰巧你需要等待 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>
4

1 回答 1

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

奇迹般有效:

在此处输入图像描述

祝你好运!

于 2016-01-29T19:44:39.643 回答