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

如何在Xamarin.Forms中阻止(c)被自动转换为版权符号©

问题原因

该问题由两个条件共同触发:

  • 你使用的Manrope-Bold字体内置了(c)连续字符序列到版权符号©的连字替换规则
  • Xamarin.Forms/.NET MAUI的Label控件默认开启OpenType字体连字支持,会自动应用字体内置的替换规则
可用解决方案

方案1:单独关闭对应Label的连字特性

在出现问题的Label标签中添加FontFeatures属性禁用标准连字即可,修改后的代码如下:

<ContentPage>
    <Label Text="This is Testing for copyright (c)" 
           FontFeatures="liga=0"/>
</ContentPage>

liga=0是通用的OpenType字体特性参数,只会关闭当前Label的标准连字功能,不会影响其他文字样式和其他控件的显示效果。

方案2:打断连字匹配序列

如果不想关闭连字功能,可以在(和c之间插入零宽空格,让字体的连字规则无法匹配到连续的(c)字符,写法如下:

<ContentPage>
    <Label Text="This is Testing for copyright (&#x200B;c)"/>
</ContentPage>

零宽空格为不可见特殊字符,不会额外占用显示宽度,也不会打乱原有排版布局。

方案3:全局禁用Manrope字体的连字特性

如果整个应用都不需要用到Manrope字体的连字功能,可以在注册自定义字体时统一添加禁用连字的配置,无需逐个Label单独设置。

内容的提问来源于stack exchange,提问作者Pavan V Parekh

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 18:30:03