2015-08-14 4 views
5

Я знаю, что вы можете установить высоту строки с «*» в XAML таким образом:Xamarin Forms Grid - Высота строки "*" в C#?

<RowDefinition Height="Auto" /> 
<RowDefinition Height="*" /> 

, но то же самое выражение в C# возвращает ошибку:

new RowDefinition { Height = new GridLength("*", GridUnitType.Auto) }, 

Так что мой вопрос заключается в том, как установить высоту строки сетки на «*» в C#?

ответ

12
var grid = new Grid(); 
grid.RowDefinitions.Add (new RowDefinition { Height = GridLength.Auto }); 
grid.RowDefinitions.Add (new RowDefinition { Height = new GridLength (1, GridUnitType.Star) }); 

var stacklayout1 = new StackLayout { HeightRequest = 100, BackgroundColor = Color.Red }; 
var stacklayout2 = new StackLayout { BackgroundColor = Color.Blue }; 

Grid.SetRow (stacklayout2, 1); 

grid.Children.Add (stacklayout1); 
grid.Children.Add (stacklayout2); 

MainPage = new ContentPage { Content = grid }; 

Screenshot of the above layout on iOS

+1

Спасибо, и как я могу сделать последний ряд не распространяется на нижней части макета, независимо от того, что содержание подряд? –

Смежные вопросы