2015-08-14 12 views
5

Ich weiß, dass Sie die Zeilenhöhe mit einer „*“ in XAML diese Weise einstellen:Xamarin Forms Grid - Zeilenhöhe von "*" in C#?

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

aber der gleichen Ausdruck in C# gibt einen Fehler zurück:

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

Also meine Frage ist, wie um die Zeilenhöhe eines Rasters in C# auf ein "*" zu setzen?

Antwort

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

Danke, und wie kann ich die letzte Zeile machen auf den Grund des Layouts, egal was der Inhalt der Zeile zu verlängern? –