在Xamarin表单中创建自定义标签背景

在Xamarin表单中创建自定义标签背景,xamarin,xamarin.android,xamarin.forms,xamarin.uwp,Xamarin,Xamarin.android,Xamarin.forms,Xamarin.uwp,我正在开发Xamarin表单,我有一个标签,可以包含不同数量的文本 我在表单中使用的平台主要是:Android和UWP不需要iOS ATM 我想给这个标签一个不是长方形的背景,更像这样:聊天/消息气泡样式 我读过一些可能的解决方案,但我对所有可用的选项感到困惑 根据我对这方面研究的了解以及我与其他平台的合作,基本上有两种选择: 设置图像背景。 使用自定义图形控件创建所需的形状。 我不知道如何在Xamarin表单中实现这些选项,我很高兴能得到一些帮助。简单的解决方案是将标签放在视图中,并设置标签后

我正在开发Xamarin表单,我有一个标签,可以包含不同数量的文本

我在表单中使用的平台主要是:Android和UWP不需要iOS ATM

我想给这个标签一个不是长方形的背景,更像这样:聊天/消息气泡样式

我读过一些可能的解决方案,但我对所有可用的选项感到困惑

根据我对这方面研究的了解以及我与其他平台的合作,基本上有两种选择:

设置图像背景。 使用自定义图形控件创建所需的形状。
我不知道如何在Xamarin表单中实现这些选项,我很高兴能得到一些帮助。

简单的解决方案是将标签放在视图中,并设置标签后面有一个图像:

<Grid>
    <Image Source="message_background.png">
    <Label Text="{Binding Message}">
</Grid>
如果你想在屏幕上看到很多这样的东西,这就不是很好了。最好的解决方案是为每个平台使用自定义渲染器,并在本地实现它。这将提供更好的性能和更大的灵活性。不过,这需要更多的维护和初始工作


你可以在自定义渲染器上阅读

设置背景图像源是个坏主意,OP说文本的体积可能是动态的,因此高度会相应地调整,这将导致扭曲的图像和可怕的用户体验。你的第二个答案应该是你的第一个答案=我知道渲染器的基本知识。但是如何使用渲染器实现它呢?你能给我一些指导吗?类似于此和此的东西分别搜索uwp bubble textblock和android bubble textview。谢谢你,但是我应该渲染哪个控件?我无法渲染标签并设置StackPanel。或者可以吗?您可以创建一个从view继承的自定义类,在每个平台上实现自定义渲染器,并将渲染器注册为自定义类的渲染器。