我Label
内的StackLayout
内有Frame
:
<Frame Grid.Row="0" Margin="0, 0, -10, 0" OutlineColor="Transparent" HasShadow="False" Grid.Column="1" BackgroundColor="{StaticResource rightBubbleColor}">
<StackLayout>
<Label
Style="{StaticResource rightBubbleStyle}"
TextColor="{StaticResource rightBubbleFontColor}"
Text="{Binding message}" />
</StackLayout>
</Frame>
这给了我这个结果:
这里的问题是最后一条消息实际上有更多文本需要6行来显示整个文本。
如果我为HeightRequest
设置Label
的值,它也会更改Frame
的高度。例如,如果我将值设置为150,我会得到以下结果:
我需要动态设置HeightRequest
的值,具体取决于Text
所需的高度。
有谁知道我是如何实现这一目标的(最好是在xaml中),或者这对我的问题是否是错误的解决方法?
从Label
删除样式并不能解决问题。它只发生在UWP上。请注意,我没有Windows Phone来测试它,问题出现在我的本地计算机上(Windows 10桌面)。
根据Xamarin documentation,高度应自动调整,具体取决于内容:
当app开发人员将ListView.HasUnevenRows属性设置为true时,列表视图的行为仍取决于ListView.RowHeight属性。首先,如果开发人员未设置ListView.RowHeight属性或将其设置为-1,则会自动调整列表视图项以适合其内容。如上所述,这是ListView.HasUnevenRows值为true的期望行为和预期用例。
答案 0 :(得分:0)
我找到了解决方案。这就是问题所在:
<RowDefinition Height="*" />
我将值设置为Auto
,现在它正在运行。奇怪的是它在iOS和Android上有不同的行为。