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

Xamarin.Forms代码后台中按钮文本的>和<转义字符未正常转换问题

解决C#后台设置按钮Text时转义字符不生效的问题

嗨,我来帮你搞定这个问题!你遇到的情况是因为XAML和C#代码对字符串的处理逻辑不一样:XAML的解析引擎会自动识别并解析HTML实体转义字符(比如>),但在C#后台代码里,直接赋值的字符串会被当作字面量处理,不会自动解码这些转义字符,所以UI上就显示了>而不是>。

这里有两种简单的解决办法:

方法一:直接使用字符本身

因为>和<不属于C#的特殊转义字符,你可以直接在字符串里写这些符号,不需要转义:

CustomButton moveToNewCheckButton = new CustomButton { 
    Text = ">", 
    Style = (Style)Application.Current.Resources["MoveButtonStyle"], 
    AutomationId = "MoveToNewCheckButton" 
};

这种方式最直接,也不需要额外的处理,推荐优先使用。

方法二:手动解码HTML转义字符

如果你因为某些原因必须使用转义后的字符串(比如字符串是从外部配置读取的),可以用.NET提供的工具类来手动解码:

// 先解码转义字符
string decodedText = System.Net.WebUtility.HtmlDecode("&gt;");

CustomButton moveToNewCheckButton = new CustomButton { 
    Text = decodedText, 
    Style = (Style)Application.Current.Resources["MoveButtonStyle"], 
    AutomationId = "MoveToNewCheckButton" 
};

注意:如果是.NET Framework项目,也可以用System.Web.HttpUtility.HtmlDecode,不过需要先引用System.Web程序集;而.NET Core/.NET 5+项目直接用System.Net.WebUtility就可以,不需要额外引用。

这样设置后,按钮上就能正确显示>符号啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.30 07:12:47