2016-05-20 9 views
2

画面の向きに合わせてUIを変更する必要があります。特に、grid.rows/columns-propertyとコントロールのアライメントを変更する必要があります。私のコントロールからのポジションチェンジのアニメーションは素敵ですが、そうする必要はありません。 私にとってもっと重要なことは、私は短く明確に配置されたコードを持っていることです。向きが変わったときにWPFレイアウトを変更する最適な方法は何ですか?

私にはいくつかのアプローチがありますが、それ以上の方法があるかもしれません。

  1. 私は、各方向の状態について追加のビューを作成します。 (これはダブルコードを生成する - それほど良くないかもしれませんか?)
  2. XAMLでコントロールの位置を変更できるストーリーボードのようなものです。 (私はgrid.rowの変更方法とストーリーボードとの位置合わせがわかりません - 実際は可能ですか?)
  3. C#-codeで変更してください。 (しかし、これは適切なWPFスタイルではないと思います)

例があるかもしれません。

Thxをステファン

答えて

0

たとえば、向きが変化したときに、あなたのビューを回転させるためにRotateTransformを使用することができます。

別のアプローチ:あなたはGrid.RowGrid.Columnスワップで作業しようとしていたので が、私はむしろあなただけHorizontalまたはVerticalOrientation依存関係プロパティを設定する必要があると思いStackPanelを、使用することをお勧めします。

注:これは解決するためにはView側の状況であり、Modelではなく、C#コードを使用することをお勧めしません。 (懸念の分離)

+1

ビューを回転させる場合、ビューのすべての要素も回転させる必要があります。これは、Windowsも画面を回転させるためです。 UI上の多くのコントロールでは、コードがわかりにくくなると思います。 Stackpanelを使用することは、筆者の狙いであり、私の場合はうまくいくかもしれません。しかし、私はこれはいつもオプションではないと思うので、おそらく他の方法がありますか? – Stefan

関連する問題