2

Win8 Metroスタイルアプリで見たC#サンプルとソースコードは、ストーリーボードアニメーションを使用して、さまざまなビュー(フルスクリーンの向きだけでなく、スナップビューモードと塗りつぶしビューモードも)のページを変更します。

これは、さまざまな解像度や向きなどに合わせてビューを調整するための良い方法のようですが...

タグの内部構造が大きく異なるポートレートビューとランドスケープビューのUI仕様を取得することが<Grid>あります。<StackPanel>アニメーションを使用してこれらの構造の1つを別の構造にモーフィングしようとすると、仕様が成熟するにつれて維持するのが難しいことは言うまでもなく、かなり困難な作業のように思えます。

単一レイアウトのアニメーションアプローチを採用することを辞任する前に、Androidでの動作と同様に、2つの完全に別個のXAMLレイアウトを単純に指定できないことを確認したかったのです。

誰か知ってる?

ありがとう。

4

1 に答える 1

3

唯一の欠点は、Landscape / Filled vs. Snappedですでに行っているように、XAMLが大きく複製されていることです。

ただし、必要な場所に移動できる場合は、ランドスケープレイアウトの特定のプロパティをアニメーション化することができます。

たとえば、がGridViewあり、ボックスを250x250から200x300に変更する必要がある場合は、使用するスタイルをコピーItemTemplateし、幅と高さの値が正しくなるように微調整して、fromからにStoryboard変更することができます。ItemTemplate"Standard250x250""MyNewPortrait200x300Style"

GridViewさて、それがaとaの違いのような根本的な変更である場合は、ListView重複したレイアウトコードを使用し、いくつかStoryboardのsを使用して一方を折りたたみ、もう一方を表示する必要がある場合があります(テンプレートがLandscape / Filled vs.スナップ)。

編集

明確にするために、私はあなたの最善のオプションは、アニメーションを介してスタイリングプロパティを微調整するか、他のレイアウト用に完全に別個(、、、など)を作成し、アニメーションを使用してランドスケープにを設定するPanelことです。とポートレート1に。これがグリッドテンプレートがスナップを処理する方法であり、非常にうまく機能します。ルートパネルのすべての子コントロールをモーフィングしようとするよりもはるかに簡単です。GridStackPanelVisibilityCollapsedVisible

于 2012-06-26T16:42:10.123 に答える