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 に答える