You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Xamarin Label无法识别<strong>/<b>标签实现加粗的解决方法

解决Xamarin Label中HTML 标签不生效的问题

问题场景

你已给Label设置TextType="Html",但填充的<strong>Hier haben wir einen fettten Text!</strong> HIER NICHT MEHR文本里,加粗标签被完全忽略,第一部分未呈现粗体效果。

排查与解决方案

1. 确认字体是否包含粗体变体

如果Label使用自定义字体,先检查是否引入了该字体的粗体版本(比如文件名带Bold、700标识,如MyFont-Bold.ttf)。若仅引入常规字体,系统无法渲染粗体,<strong>标签自然失效。

  • 若使用系统默认字体(如Android的Roboto、iOS的San Francisco),默认支持粗体,但个别定制系统可能存在异常,可切换字体验证。

2. 正确配置自定义粗体字体

若使用自定义字体,需确保粗体字体被正确注册:

  • 在共享项目的AssemblyInfo.cs中添加注册代码:
[assembly: ExportFont("MyFont-Bold.ttf", Alias = "MyFontBold")]
  • 或在XAML的ResourceDictionary中定义:
<FontFamily x:Key="MyFontBold">Fonts/MyFont-Bold.ttf#MyFont</FontFamily>

3. 替代方案:使用FormattedString(更可靠)

如果HTML渲染的字体问题难以排查,直接用FormattedString控制文本样式是更稳妥的选择,完全避开HTML解析的兼容性问题:

<Label TextColor="{StaticResource TextBlack}" x:Name="label_description">
    <Label.FormattedText>
        <FormattedString>
            <Span Text="Hier haben wir einen fettten Text!" FontAttributes="Bold" />
            <Span Text=" HIER NICHT MEHR" />
        </FormattedString>
    </Label.FormattedText>
</Label>

这种方式直接指定某段文本的FontAttributes="Bold",无需依赖HTML标签,兼容性更好。

4. 检查HTML文本是否被转义

确认传递给Label的Text值未被转义——如果文本里是&lt;strong&gt;而非<strong>,标签会被当作普通文本显示,自然无法生效。可在代码中打印label_description.Text的值,验证原始字符串是否正确。


内容的提问来源于stack exchange,提问作者inno

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 02:32:22