2012-04-05 7 views
2

Win8 Metroスタイルのアプリで見たC#サンプルとソースコードは、ストーリーボードのアニメーションを使用して異なるビューのページを変更しますが、を埋め込みましたビューモードも同様です) 。ポートレートとランドスケープの2つの異なるレイアウトを指定できますか?

これは、など、異なる解像度のためのあなたの視野を調整する良い方法、姿勢のように思えるが...

私は時々<Grid>の非常に異なる内部構造を必要と肖像&ランドスケープビューのUIの仕様を取得し、 <StackPanel>タグ。アニメーションを使用してこれらの構造の1つを他のものに変形しようとすると、スペックが成熟するにつれて維持するのが難しいことは言うまでもありません。

私はアニメーション--シングルレイアウトアプローチを取るに自分自身を辞任する前に、私はそれは、単にそれがどのように機能するかに似た2つの完全に独立したXAMLのレイアウトを指定することはできないことを確認したかったですアンドロイド?

誰でも知っていますか?

ありがとうございました。

+4

ビジュアルステートマネージャを使用してレイアウトを確実に切り替えることができます。 XAMLアニメーションではアニメーション化だけではありません。アニメーションを使用して、スタイルを変更したり、さまざまな要素を表示/非表示にすることができます。 Denisの+1 – Denis

+0

+1 VSMを使用して、コントロール全体を有効/無効にすることができます。それは大きなXAMLを作ります。 – jv42

答えて

3

唯一の欠点は、既に「風景/塗りつぶし対スナップ」と同じように、重複した大きなXAMLがあることです。

しかし、あなたがする必要がある場合は、風景レイアウトのいくつかの特定のプロパティをアニメーション化することができます。

例えば、GridViewを持っているし、あなたのボックスは200x300に250×250から行く必要がある場合、あなたはちょうどあなたがあなたのItemTemplateに使用するスタイルをコピーすることができ、幅と高さの値が正しいようにそれを微調整し、Storyboardを使用ItemTemplate"Standard250x250"から"MyNewPortrait200x300Style"に変更してください。それはGridViewListViewの違いのような根本的な変化が、ある場合

さて、あなたはいくつかの重複レイアウトコードと一緒に暮らすために必要がある場合がありますし、いくつかStoryboard Sを使用して、1つの崩壊とテンプレートのような(他を表示します風景/塗りつぶし対スナップ)を使用します。

編集

明確にするために、私はあなたのために(それはGridStackPanel、または何も)あなたの最良のオプションは、アニメーションを経由してスタイリングのプロパティを微調整し、または完全に独立したPanelを作成するために、どちらかであると言っています他のレイアウトを使用し、アニメーションを使用して、風景の1つ上のVisibilityCollapsedに設定し、ポートレートのセットをVisibleに設定します。グリッドテンプレートがSnappedをどのように処理するのか、それは本当にうまく機能します。ルートパネルのすべての子コントロールをモーフィングするよりもずっと簡単です。

関連する問題