网格未扩展以填满屏幕
Grid not expanding to fill screen
我有以下网格,它加载到 StackLayout 中:
Grid grid = new Grid {
VerticalOptions = LayoutOptions.FillAndExpand,
HorizontalOptions = LayoutOptions.FillAndExpand,
RowDefinitions =
{
new RowDefinition { Height = new GridLength(40, GridUnitType.Auto) },
new RowDefinition { Height = GridLength.Auto },
new RowDefinition { Height = GridLength.Auto },
new RowDefinition { Height = GridLength.Auto },
new RowDefinition { Height = GridLength.Auto },
new RowDefinition { Height = GridLength.Auto },
new RowDefinition { Height = GridLength.Auto },
new RowDefinition { Height = new GridLength(40, GridUnitType.Auto) },
},
ColumnDefinitions =
{
new ColumnDefinition { Width = new GridLength(100, GridUnitType.Auto) },
new ColumnDefinition { Width = new GridLength(100, GridUnitType.Star) },
new ColumnDefinition { Width = new GridLength(50, GridUnitType.Star) },
new ColumnDefinition { Width = new GridLength(50, GridUnitType.Star) },
new ColumnDefinition { Width = new GridLength(100, GridUnitType.Auto) },
}
};
grid.Children.Add (btnMenu, 0, 1, 0, 1);
grid.Children.Add (lblProfile, 1, 5, 0, 1);
grid.Children.Add (btnEdit, 4, 5, 0, 1);
grid.Children.Add (lblFirstName, 1, 2, 1, 2);
grid.Children.Add (lblFirstNameValue, 2, 3, 1, 2);
Content = new StackLayout {
HorizontalOptions = LayoutOptions.StartAndExpand,
Children = {
grid
}
};
我已经更改了宽度值和网格宽度的类型,但我无法让它填满整个屏幕,除非我使用固定值,这在我的 phone 上看起来不错但在其他方面真的很糟糕。
尝试将 VerticalOptions = LayoutOptions.FillAndExpand
添加到父级 StackLayout
在我的例子中,我必须将 VerticalOptions = FillAndExpand
添加到 parent StackLayout
并将 grandparent Frame
设置为 Padding = 0
我有以下网格,它加载到 StackLayout 中:
Grid grid = new Grid {
VerticalOptions = LayoutOptions.FillAndExpand,
HorizontalOptions = LayoutOptions.FillAndExpand,
RowDefinitions =
{
new RowDefinition { Height = new GridLength(40, GridUnitType.Auto) },
new RowDefinition { Height = GridLength.Auto },
new RowDefinition { Height = GridLength.Auto },
new RowDefinition { Height = GridLength.Auto },
new RowDefinition { Height = GridLength.Auto },
new RowDefinition { Height = GridLength.Auto },
new RowDefinition { Height = GridLength.Auto },
new RowDefinition { Height = new GridLength(40, GridUnitType.Auto) },
},
ColumnDefinitions =
{
new ColumnDefinition { Width = new GridLength(100, GridUnitType.Auto) },
new ColumnDefinition { Width = new GridLength(100, GridUnitType.Star) },
new ColumnDefinition { Width = new GridLength(50, GridUnitType.Star) },
new ColumnDefinition { Width = new GridLength(50, GridUnitType.Star) },
new ColumnDefinition { Width = new GridLength(100, GridUnitType.Auto) },
}
};
grid.Children.Add (btnMenu, 0, 1, 0, 1);
grid.Children.Add (lblProfile, 1, 5, 0, 1);
grid.Children.Add (btnEdit, 4, 5, 0, 1);
grid.Children.Add (lblFirstName, 1, 2, 1, 2);
grid.Children.Add (lblFirstNameValue, 2, 3, 1, 2);
Content = new StackLayout {
HorizontalOptions = LayoutOptions.StartAndExpand,
Children = {
grid
}
};
我已经更改了宽度值和网格宽度的类型,但我无法让它填满整个屏幕,除非我使用固定值,这在我的 phone 上看起来不错但在其他方面真的很糟糕。
尝试将 VerticalOptions = LayoutOptions.FillAndExpand
添加到父级 StackLayout
在我的例子中,我必须将 VerticalOptions = FillAndExpand
添加到 parent StackLayout
并将 grandparent Frame
设置为 Padding = 0