2016-08-14 6 views
3

コンテンツページを表示する方法はわかりましたが、向きに基づいて適切なレイアウトを選択するにはどうすればよいですか。私はxamlファイルを書きたいと思っていました。一つは垂直方向、もう一つは水平方向です。それは向きが異なる向きで異なるxamlを切り替える方法

答えて

3

Xamarin.Formsを変更したときに共有コード内向きの変化のあなたのアプリ を通知するための任意のネイティブのイベントを提供していないXAMLファイルを切り替えることが可能です。ただし、ページの幅または高さが変更された場合、PageののSizeChangedイベントが発生します。 Pageの幅が高さより大きい場合、デバイスは横向きモードで になります。これにより

protected override void OnSizeAllocated (double width, double height){ 
    base.OnSizeAllocated (width, height); 
    if (width != this.width || height != this.height) { 
     this.width = width; 
     this.height = height; 
     if (width > height) { 
      // landscape 
     } else { 
      // portrait 
     } 
    } 
} 

あなたは、プログラム配向に新しいコンテンツベースにあなたのページの内容を変更することができます。あなたは同じXAMLを使用しようとするだけで、いくつかのビュー、たとえばhereの向きを変えることができ、いくつかの患者では

Content = // new content here. 

ソースhere

+0

その実装を見て、それに答えるのは難しいです。しかし、(少なくともアンドロイドで)画面を回転させると、ビューを作成して再度描画する必要があります。したがって、新しいビューを作成したり、既存のビューを回転させるのとほぼ同じコストです。あなたの場合、私はあなたにとってより簡単なことが最善のものだと思います。 – jzeferino

+0

Hmm ..私は、左パネル、描画のための中央領域、および横長モードの右パネル、および縦長モードのための上パネル、中央、および下を有するインターフェースを有する。各パネルには、5つの画像ボタンがあります。それを行うベストプラクティスは何ですか?コンテンツビューまたはコンテンツページとして作成する。 – LittleFunny

+0

このコメントセクションは大きすぎます。古いコメントを削除します。同じようにしてください。したがって、XAMLの最初のコンテンツビューには、いくつかのコードがあります。あなたの他のコンテンツビューでは、非常によく似ていない、等しくないコードが必要です。そのためには、コードの背後にある別のクラスを作成し、同じクラスをコンテンツビューで使用することをお勧めします。 – jzeferino

関連する問題