Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/263.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 根据文本需要的空间大小自动设置标签高度请求_C#_Xaml_Xamarin_Height_Uwp - Fatal编程技术网

C# 根据文本需要的空间大小自动设置标签高度请求

C# 根据文本需要的空间大小自动设置标签高度请求,c#,xaml,xamarin,height,uwp,C#,Xaml,Xamarin,Height,Uwp,我在堆栈布局中有一个标签,框架中有一个标签: <Frame Grid.Row="0" Margin="0, 0, -10, 0" OutlineColor="Transparent" HasShadow="False" Grid.Column="1" BackgroundColor="{StaticResource rightBubbleColor}"> <StackLayout> <Label Style="{StaticResource

我在
堆栈布局中有一个
标签
框架中有一个
标签

<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
设置了一个值,它也会更改
帧的高度。例如,如果我将值设置为150,则得到以下结果:

我需要根据
文本
需要的高度,动态设置
HeightRequest
的值

有人知道我如何做到这一点(最好是在xaml中),或者这是一种解决问题的错误方法吗

编辑1: 从
标签中删除样式并不能解决问题。它只发生在UWP上。请注意,我没有Windows Phone来测试它,问题发生在我的本地计算机(Windows 10桌面)上

编辑2: 根据,高度应根据内容自动调整大小:

当应用程序开发人员将ListView.Rows属性设置为true时,列表视图的行为仍取决于ListView.RowHeight属性。首先,如果开发人员未设置ListView.RowHeight属性或将其设置为-1,则列表视图项将自动调整大小以适合其内容。如上所述,这是ListView.HasRows值为true的所需行为和预期用例


我找到了解决办法。这就是问题所在:

<RowDefinition Height="*" />


我将该值设置为
Auto
,现在它开始工作了。奇怪的是,它在iOS和Android tho上有不同的行为。

我做了一个基本的演示。但没有重现你的问题。标签会根据文本体积自动更改其高度。请将完整的XAML代码与样式一起发布好吗?@Evlis谢谢。你测试过UWP吗?对我来说,它在Android和iOS上也能工作,但在UWP上不行。是的,我在UWP上测试过。所以我猜是有别的东西在剪掉标签。@Elvis我编辑了我的问题。风格不是问题那么你能在一个空白的xamarin项目上尝试代码吗?