如何在 Xamarin.Forms 的标签中给单个单词加下划线?

How to underline single words in a label in Xamarin.Forms?

我想在 Xamarin.Forms 中为标签文本添加下划线。我找不到任何合适的解决方案。我发现 Xamarin 中的文本没有下划线 属性,因此我们可以为该行添加一个 BoxView,而不是像这样:

<StackLayout  Grid.Row="0" Padding="0" VerticalOptions="Center">
    <Label Text="Terms and Conditions" />
    <BoxView BackgroundColor="White" HeightRequest="1" Margin="0,-8,0,0" />
</StackLayout>

但这也不是一个合适的解决方案,因为它会与整个 StackView 划清界限。我想在上面的代码中只强调部分文本,例如单词 "Terms"。

您可以为此使用 Effects

创建 UnderlineEffect 使用:

Android

var tv = (TextView)Control;
tv.PaintFlags = tv.PaintFlags | PaintFlags.UnderlineText;

iOS

您必须使用可变字符串,如下所示:

编辑

我写了一篇博客post。享受:http://smstuebe.de/2016/08/29/underlinedlabel.xamarin.forms/