我需要使用Xaml或后面的代码在Xamarin.Forms中设置RowDefinition
Grid
的最小高度。我找不到像MinHeight或MaxHeight这样的房产。 RowDefinition
只有高度属性。
<Grid ColumnSpacing="10" Padding="20">
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
</Grid>
答案 0 :(得分:5)
您可以执行此操作来设置MinimumHeight
:
<Grid ColumnSpacing="10" Padding="20">
<Grid.RowDefinitions>
<RowDefinition Height= "Auto"/>
</Grid.RowDefinitions>
<ContentView Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="2" MinimumHeightRequest="20">
...
</ContentView>
</Grid>
注意:MinimumHeightRequest
会选择请求的身高与请求的最低身高之间的最小值。 Source
答案 1 :(得分:2)
我用与Akash Amin相同或类似的方式解决了问题。 在我的自定义控件中,我添加了一个具有固定高度的空boxview来设置行的最小高度。 importent标签位于transparant boxview上方。所以我没有在boxview中放置任何东西。 我在customcontrol中使用codebehind编写了代码。
var grid = new Grid();
grid.HorizontalOptions = LayoutOptions.Fill;
grid.VerticalOptions = LayoutOptions.Start;
grid.ColumnDefinitions.Add(new ColumnDefinition() { Width = new GridLength(1, GridUnitType.Star) });
grid.ColumnDefinitions.Add(new ColumnDefinition() { Width = GridLength.Auto });
grid.RowDefinitions.Add(new RowDefinition() { Height = GridLength.Auto, });
var minSizer = new BoxView();
minSizer.HeightRequest = 30;
grid.Children.Add(minSizer, 0, 0);
_label = new Label();
_label.VerticalTextAlignment = TextAlignment.Center;
_label.VerticalOptions = LayoutOptions.Center;
grid.Children.Add(_label, 0, 0);
...
(我觉得很奇怪,MinimumWidthRequest和MinimumHeightRequest不能像大多数人期望的那样工作。在xamarin我的意思是。)