如何在xamarin表单中的标签文本上画一条线

kee*_*ana 4 c# xamarin xamarin.forms

如下图所示,我需要在标签文本上动态绘制一条线.这是我在listview中的标签

在此输入图像描述

有人可以告诉我这件事吗?

Ahm*_*adi 9

在这里,您可以自己控制(strikedLabel)并放置此代码.为了使它更有趣和灵活,您可以添加可绑定属性,如(IsStriked,StrikeColor等),请记住标签和BoxView之间的顺序很重要

<Grid>
    <Label VerticalOptions="Center" Text="Sample string" />
    <BoxView HeightRequest="3"
    VerticalOptions="Center"
    Opacity="0.5"
    Color="Aqua" />
</Grid>
Run Code Online (Sandbox Code Playgroud)


Sub*_*Ali 7

我认为我们可以简单地使用 Xamarin 提供的 Label 的 TextDecorations 属性,而不是使用不同的布局或框视图来实现它,如下所示。

<Label
      Text="$200"
      TextDecorations="Strikethrough" />
Run Code Online (Sandbox Code Playgroud)


Tim*_*äki 4

由于 Xamarin.Forms 不提供开箱即用的此功能,因此您需要通过为每个平台创建自定义呈现器来扩展标签。通过这样做,您可以访问每个平台上的本机控件(Android 上的TextView和 iOS 上的UILabel)并在那里实现删除线效果。

  1. 在 Android 上,您可以在 TextView 上使用STRIKE_THRU_TEXT_FLAG 。您在自定义渲染器中需要类似的东西:someTextView.PaintFlags = Paint.StrikeThruText;
  2. 在 iOS 上,您应该遵循 Xamarin 论坛上此线程的指导。基本上,您可以使用UIStringAttributes来实现所需的结果。

如果您不熟悉自定义渲染器,请在此处查看有关如何自定义 Entry 控件的入门教程。


编辑:实际上,您甚至可以使用效果来实现这一点。更多信息请参见此处