【问题标题】:Creating Custom label background in Xamarin Forms在 Xamarin Forms 中创建自定义标签背景
【发布时间】:2017-12-21 16:30:43
【问题描述】:

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

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

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

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

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

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

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

【问题讨论】:

    标签: xamarin xamarin.android xamarin.forms xamarin.uwp


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 设置背景图像源将是一个坏主意,OP 说文本的体积可能是动态的,因此高度会相应地调整,这将导致图像失真和可怕的用户体验。你的第二个答案应该是你的第一个。 =)
    • 我知道渲染器的基础知识。但是应该如何使用渲染器来实现呢?能给我指路吗?
    • 类似于 stackoverflow.com/questions/43761186/…stackoverflow.com/questions/17541739/… 的内容分别搜索“uwp 气泡文本块”和“android 气泡文本视图”的热门搜索
    • 谢谢,但我应该渲染哪个控件?我无法渲染标签并设置 StackPanel。(或者我可以吗?)
    • 您创建一个从视图继承的自定义类,在每个平台上实现自定义渲染器并将渲染器注册为您自定义类的渲染器。 developer.xamarin.com/guides/xamarin-forms/…
    猜你喜欢
    • 2020-03-16
    • 1970-01-01
    • 2022-07-04
    • 2017-11-16
    • 2015-06-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多