C#/XAML を使用して、Windows 8 UI / Metro UI アプリのテキスト ボックスにオートコンプリートを実装したいと考えています。
現時点では、ソフト/タッチ キーボードが表示されると、オートコンプリート ボックスが見えなくなります。ただし、テキスト ボックスにフォーカスがあると、Windows 8 はビュー全体を自動的に上にスクロールし、テキスト ボックスにフォーカスがあることを確認します。
実際には、私が望むのはビューをもう少し上にスクロールすることだけです (実際には、オートコンプリート ボックスの高さだけ)。
InputPane.GetForCurrentView() の Showing イベントをインターセプトできることに気付きました
私は、InputPaneVisibilityEventArgs.EnsuredFocusedElementInView を、Showing イベント内で true に設定することができます (そのため、Windows は何もしようとしません)。ただし、Windows 8 と同じスクロール機能を呼び出して、もう少し!?
メインページのコードは次のとおりです。
<Grid Background="{StaticResource ApplicationPageBackgroundThemeBrush}">
<StackPanel VerticalAlignment="Center" HorizontalAlignment="Center" Margin="0,200,0,0">
<TextBlock HorizontalAlignment="Center" FontSize="60">App 1</TextBlock>
<TextBlock HorizontalAlignment="Center">Enter text below</TextBlock>
<TextBox HorizontalAlignment="Center" Margin="-10,0,10,0" Width="400" Height="30"/>
<ListBox HorizontalAlignment="Center" Width="400">
<ListBoxItem>Auto complete item 1</ListBoxItem>
<ListBoxItem>Auto complete item 2</ListBoxItem>
<ListBoxItem>Auto complete item 3</ListBoxItem>
<ListBoxItem>Auto complete item 4</ListBoxItem>
<ListBoxItem>Auto complete item 5</ListBoxItem>
</ListBox>
</StackPanel>
</Grid>
最も低い解像度でシミュレーターを起動する場合は、手でテキスト ボックスに「触れる」と、ソフト キーボードが表示されます。実際のアプリでは、ユーザーがテキストを入力すると、オート コンプリート リストに項目が表示されます。
要するに、ユーザーがオートコンプリート リスト全体を表示できるように、画面をもう少し上に移動するにはどうすればよいでしょうか?
実際のアプリでは、ユーザーはキーボードの「下」に表示されるオートコンプリート リストに気付かない可能性があるため、さらに悪化することに注意してください。
アドバイスをいただければ幸いです。どうもありがとうございました。