我在代码中尝试过。
<StackLayout
HorizontalOptions="FillAndExpand"
Spacing="0"
MinimumHeightRequest="50">
<StackLayout Margin="20, 6, 20, 8"
HorizontalOptions="FillAndExpand"
VerticalOptions="FillAndExpand"
Spacing="0">
<Label Text="ABC"
HorizontalOptions="Start"
VerticalOptions="StartAndExpand" />
</StackLayout>
</StackLayout>
但是对于诸如ABC之类的小文字,高度不等于50。是否可以通过某种方法确保高度最小为50?
答案 0 :(得分:4)
您可以尝试以下方法:
<Grid RowSpacing="0">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<StackLayout Grid.Row="0" HeightRequest="50"/>
</Grid>
我正在我的应用程序中执行此操作,并且工作正常。您将RowDefinition
设置为Auto
,那么它将恰好适合您的HeightRequest。
答案 1 :(得分:2)
在以下forum
上中继ShawnCastrianni.5092阅读API文档中的注释后,我看到以下内容:
“ MinimumHeightRequest用于覆盖对的调用结果 VisualElement.GetSizeRequest(double,double)通过设置最小值 高度属性。这将导致溢出处理以缩小此元素 在没有最小尺寸的元素之前达到其最小高度 设置。”
我猜这与您所说的杰森相符。因此,我认为每个人 将被名称MinimumHeightRequest抛出。我比较喜欢 说 OverflowHeightRequest 以避免任何混乱。
名称本身具有误导性。您必须创建自定义解决方案才能解决问题
答案 2 :(得分:0)
您可以尝试设置HeightRequest=50
并测量标签文本的高度。使用this source中的ITextMeter,如果文本高度大于50,则将HeightRequest设置为文本高度。