2017-11-27 9 views
1

を設定する私はこのようなグリッドに2人の子供を追加している:グリッド子供のための相対的な高さ

private void pInitStackLayout() 
    { 
     grid1 = new Grid() 
     { 
     }; 

     grid2 = new Grid() 
     { 
     }; 

     biggrid = new Grid() 
     { 
      BackgroundColor = Color.Transparent, 
      Margin = new Thickness(0), 
      HorizontalOptions = LayoutOptions.FillAndExpand, 
      VerticalOptions = LayoutOptions.StartAndExpand, 
      Orientation = StackOrientation.Vertical, 
     }; 
     biggrid.Children.Add(grid1,0,0); 
     biggrid.Children.Add(grid2,0,1); 

     this.Content = biggrid; 
    } 

ContentPageの(ナビゲーション・ページである)コンテンツがbiggridです。

grid1が利用可能な高さの80%を占め、grid2が20%(または残りの部分)を占めるようにしたいと思います。

これをどのように達成できますか?

+0

bigridでRowDefinitions Heightを設定しようとしましたか?たとえば、 'biggrid.RowDefinitions [0] .Height = new GridLength(5、GridUnitType.Star);' – Nick

答えて

2

実際には、単純にRowDefinitionsをbiggridに設定するだけです。

// RowDefinitions isolated 

RowDefinitions = new RowDefinitionCollection 
{ 
    new RowDefinition { Height = new GridLength(8, GridUnitType.Star) }, 
    new RowDefinition { Height = new GridLength(2, GridUnitType.Star) } 
} 

// RowDefinitions isolated 

// Actual code 
private void pInitStackLayout() 
{ 
    grid1 = new Grid() 
    { 
    }; 

    grid2 = new Grid() 
    { 
    }; 

    biggrid = new Grid() 
    { 
     RowDefinitions = new RowDefinitionCollection 
     { 
      new RowDefinition { Height = new GridLength(8, GridUnitType.Star) }, 
      new RowDefinition { Height = new GridLength(2, GridUnitType.Star) } 
     }, 

     BackgroundColor = Color.Transparent, 
     Margin = new Thickness(0), 
     HorizontalOptions = LayoutOptions.FillAndExpand, 
     VerticalOptions = LayoutOptions.StartAndExpand, 
     Orientation = StackOrientation.Vertical, 
    }; 
    biggrid.Children.Add(grid1,0,0); 
    biggrid.Children.Add(grid2,0,1); 

    this.Content = biggrid; 
} 
関連する問題