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

Creating Custom label background in Xamarin Forms

我正在使用 Xamarin 表单进行开发,并且我有一个可以包含不同数量文本的标签。

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

我想给这个标签一个不是矩形的背景,更像是这样的:(chat/message气泡样式)

我已经阅读了一些可能的解决方案,但我对所有可用的选项感到困惑。

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

  1. 设置图片背景。
  2. 使用自定义图形控件创建我想要的形状。

我不确定如何在 Xamarin Forms 中实现这些选项中的任何一个,我很乐意得到一些帮助。

简单的解决方案是在 View 中托管 Label 并在标签后面设置 Image

<Grid>
    <Image Source="message_background.png">
    <Label Text="{Binding Message}">
</Grid>

如果您要在屏幕上显示很多这样的内容,这不是很高效。最好的解决方案是为每个平台使用自定义渲染器并在本地实现它。这将提供更好的性能和更大的灵活性。不过,这是更多的维护和初始工作。

您可以阅读自定义渲染器 here