XAML Span标签下划线在Xamarin iOS上不起作用

pxy2qtax  于 2022-12-07  发布在  iOS
关注(0)|答案(3)|浏览(138)

我正在使用一个带跨度的标签,其中一个是链接,我想添加一个下划线样式,我正在使用<Span Text="Link url" TextDecorations="Underline" />,但它在iOS中与"Xamarin.Forms" Version="5.0.0.2401"不工作。
我尝试添加效果,但所有属性都需要重新设置(样式、触摸事件等)。

<Label>
    <Label.FormattedText>
        <FormattedString>
            <Span Text="Text 1"/>
            <Span Text="Text 2"/>
            <Span Text="Click to open Link" TextDecorations="Underline">
                <Span.GestureRecognizers>
                    <TapGestureRecognizer Command="{Binding lINKCommand}"/>
                </Span.GestureRecognizers>
            </Span>
        </FormattedString>
    </Label.FormattedText>
</Label>

有时候Xamarin表单需要修复它,同时我想应用一个小的临时修复。

kzipqqlq

kzipqqlq1#

我发现,在运行时将Label中的TextType属性设置为Html时,它可以正常工作。
因此,我必须创建一个数据触发器,并使用数据绑定来设置何时加载所有数据。

<Label>
    <Label.Triggers>
        <DataTrigger TargetType="Label" Binding="{Binding IsBusy}" Value="false">
            <Setter Property="TextType" Value="Html" />
        </DataTrigger>
    </Label.Triggers>
    <Label.FormattedText>
        <FormattedString>
            <Span Text="Text 1"/>
            <Span Text="Text 2"/>
            <Span Text="Click to open Link" TextDecorations="Underline">
                <Span.GestureRecognizers>
                    <TapGestureRecognizer Command="{Binding lINKCommand}"/>
                </Span.GestureRecognizers>
            </Span>
        </FormattedString>
    </Label.FormattedText>
</Label>
fzsnzjdm

fzsnzjdm2#

TextType.Html的技巧起作用了。我可以看到下划线,但它阻止了TapGestureRecognizer命令。因此,在Html文本类型上设置标签,然后返回到文本文本类型也解决了这个问题。

protected override void OnAppearing()
{
    base.OnAppearing();
    MyLabel.TextType = TextType.Html;
    MyLabel.TextType = TextType.Text;
}
lstz6jyr

lstz6jyr3#

我还发现,当您在运行时在Label中设置FontSize时,它会工作。

相关问题