3

発生している問題を再現するための簡単なテスト アプリを作成しましたが、解決策が見つかりません。ItemsControl に含まれる TextBox のフラット リストを持つ基本的な Windows ストア アプリがあります。リストは十分な長さなので、Bottom TextBox にフォーカスがあると仮想キーボードによって隠され、ビュー全体が自動的に上にスクロールして、キーボードの使用中に TextBox が確実に表示されるようにします。

ただし、以下に示すように、ItemsControl が単純な Grid ではなく FlipView または GridView でホストされている場合、自動垂直スクロールは発生せず、下部の要素は仮想キーボードによって隠されたままである。これは、親コントロールに含まれる ScrollViewer が、デフォルトの便利なビューのスクロール動作を完全にオーバーライドしているように見えるという事実によるものと思われます。

問題は、この動作を再度有効にする方法です。自分のスタイルで ScrollViewer を削除しようとしましたが、これは機能しますが、FlipView が FlipView として機能しなくなったことも意味します。

<Grid>
        <ItemsControl Width="200">
            <TextBox Text="Test"></TextBox>
            <TextBox Text="Test"></TextBox>
            <TextBox Text="Test"></TextBox>
            <TextBox Text="Test"></TextBox>
            <TextBox Text="Test"></TextBox>
            <TextBox Text="Test"></TextBox>
            <TextBox Text="Test"></TextBox>
            <TextBox Text="Test"></TextBox>
            <TextBox Text="Test"></TextBox>
            <TextBox Text="Test"></TextBox>
            <TextBox Text="Test"></TextBox>
            <TextBox Text="Test"></TextBox>
            <TextBox Text="Test"></TextBox>
            <TextBox Text="Test"></TextBox>
            <TextBox Text="Test"></TextBox>
            <TextBox Text="Test"></TextBox>                
            <TextBox Text="Hidden by VKD"></TextBox>            
        </ItemsControl>       
</Grid>
4

2 に答える 2

1

私は同じ問題を抱えていて、問題の原因となっている要素を見つけました。それは、デフォルトの項目パネルとしてVirtualizingStackPanel多くの中で使用されているものです。ItemsControlsこれを通常の に変更するとStackPanel、仮想キーボードがポップアップしたときに、対応する入力コントロールが正しく変換されます。

詳細については、こちらを参照してください: FlipView に含まれるテキスト ボックスが、ポップアップしたときにソフト キーボードで隠れてしまうのはなぜですか?

于 2015-04-15T22:03:07.360 に答える
-1

おそらく、キーボードが表示されたときに自分でTextBoxを移動できますか?このサンプルは有望に見えます:

画面キーボードサンプルの外観に対応

于 2012-11-05T04:09:42.940 に答える