Windows 8 (WInRT) 向けに開発していますが、設定の魅力に問題があります。設定ポップアップは、Microsoft SDK 設定チャームに基づいています。設定パネルはポップアップです。コンテンツは ScrollViewer -> Grid -> StackPanel によってラップされます。StackPanel には入力フィールドがあります。オーバーレイしているスクリーンキーボードで最後に入力しようとすると、フィールドが表示されず、スクロールできません。それを見て自動的にスクロールする方法はありますか?
2 に答える
Windows 8 のポップアップは、Windows Phone の場合と同じ問題を抱えているようです。TextBox をそれらの 1 つに配置すると、他のすべてのコンテンツと一緒に押し上げられません。ポップアップ。
それに対する私の解決策は、入力フィールドにポップアップを使用せず、代わりに自分で管理できるレイアウトを使用することです。
既定では、アプリのビジュアル ルートに Frame コントロールがあります。たとえば、すべてのページで使用されるフレームを持つ独自の UserControl (私は通常 AppShell と呼びます) をそこに配置することで、それを変更できます。ポップアップ、ログイン画面、拡張スプラッシュ画面などのレイヤーを作成できます。
問題を解決するには、ポップアップではなく、そのようなレイヤー内にチャームの UI を配置する必要があります。次に、オンスクリーン キーボードが TextBox のビューを妨げるときにすべての UI を押し上げる組み込みメカニズムが、再び機能し始めるはずです。
*編集
より簡単な解決策は、設定パネルのポップアップがビジュアル ツリーで親になるようにすることです。たとえば、アプリまたはページのルート グリッドに子要素として追加します。その場合、OSK が表示されたときにコンテンツが押し上げられることがわかります。
これはポップアップ ラッパー (ユーザー コントロールをポップアップに変える) であり、表示されるキーボードを処理し、それに応じてポップアップ (およびユーザー コントロール) のサイズを調整します。