3

そこで、アプリを作成してレイアウトを設定し、ポートレート モードで問題なく表示されるようにしました。スナップ ビューでは、同じオブジェクトの異なるインスタンスを含む ListView を作成しました。この ListView は最初は折りたたまれており、スナップに変わるとリストビューが表示され、ポートレート モードのオブジェクトが折りたたまれます。

これは問題なく動作しますが、これらは 2 つの異なるオブジェクト セットであるため、ユーザー エクスペリエンスが台無しになります。縦向きモードでボックスにテキストを入力し、スナップ ビューに切り替えると、すべてのテキストが表示されなくなります (折りたたまれたテキスト ボックスに入力したため)。

問題は、スナップモードかどうかに応じて、要素の位置/サイズを変更して、同じオブジェクトを別の場所に配置することは可能ですか?

これが明確であることを願っています。ありがとう。

4

1 に答える 1

7

はい、実際には、その機能はクラスに組み込まれています。これは、プロジェクトに基本ページ (対空白ページ) を追加したときに得られるページLayoutAwarePageのタイプです。Grid または Split App テンプレートから開始した場合、提供されるページは同様に拡張されます。LayoutAwarePage

これらのページには、VisualStateManagerを活用し、さまざまなアプリケーション レイアウトの状態を定義するボイラープレート XAML があります。できることは、フル ランドスケープ モード用にレイアウトを設計し、[デバイス] ウィンドウを使用して、スナップ、塗りつぶし、およびポートレートのレイアウト (配置、色など) への変更を記録することです。

たとえば、ランドスケープ モードのシンプルな UI は次のとおりです。

ここに画像の説明を入力

次に、ビジュアル ステートSnappedに切り替え、 Enable State Recordingをオンにして、レイアウトを変更しました。

ここに画像の説明を入力

実行時のアプリは、2 つの状態のそれぞれで次のようになります。コードは必要ありませんLayoutAwarePage。アプリの向きが変わると、VisualState を切り替えることですべて処理されます。

ここに画像の説明を入力

ここに画像の説明を入力

于 2013-01-06T03:08:13.293 に答える