作为字符串的 Font Awesome 代码未按预期呈现
Font Awesome code as string not rendering as expected
我有一个 Label
这样的:
new Label
{
FontFamily = FontAwesome.Light,
FontSize = 50,
TextColor = Palette.Common.Accent,
BackgroundColor = Color.Transparent,
HorizontalTextAlignment = TextAlignment.Start,
VerticalTextAlignment = TextAlignment.Center,
HorizontalOptions = LayoutOptions.Start,
VerticalOptions = LayoutOptions.Center
}
.Bind(Label.TextProperty, nameof(MyFieldModel.iconCode))
iconCode
在 MyFieldModel
中是 string
.
string iconCode = "f135";
这只是呈现为文字字符串 f135
而不是火箭。 (f135 是 fontawesome 中火箭的代码)。
但是当我把它改成:
string iconCode = "\uf135";
它呈现为火箭。
如果我将图标代码输入为 string
,例如“f135”。如何在代码中将其转换为 \uf135
格式。
我尝试了以下所有方法并且 none 有效:
// try 1
string iconCode = "\u" + myCodeString;
// try 2
string iconCode = @"\u" + myCodeString;
// try 3
StringBuilder sb = new StringBuilder();
sb.AppendFormat("U+{0:X4} ", iconCode);
如何让它发挥作用?
基于,尝试
= System.Text.RegularExpressions.Regex.Unescape(@"\u" + myCodeString);
例如,如果myCodeString
包含"f135"
,这相当于
= System.Text.RegularExpressions.Regex.Unescape(@"\uf135");
这应该给你相同的结果:
= "\uf135";
包含该单个 unicode 字符的字符串。
我有一个 Label
这样的:
new Label
{
FontFamily = FontAwesome.Light,
FontSize = 50,
TextColor = Palette.Common.Accent,
BackgroundColor = Color.Transparent,
HorizontalTextAlignment = TextAlignment.Start,
VerticalTextAlignment = TextAlignment.Center,
HorizontalOptions = LayoutOptions.Start,
VerticalOptions = LayoutOptions.Center
}
.Bind(Label.TextProperty, nameof(MyFieldModel.iconCode))
iconCode
在 MyFieldModel
中是 string
.
string iconCode = "f135";
这只是呈现为文字字符串 f135
而不是火箭。 (f135 是 fontawesome 中火箭的代码)。
但是当我把它改成:
string iconCode = "\uf135";
它呈现为火箭。
如果我将图标代码输入为 string
,例如“f135”。如何在代码中将其转换为 \uf135
格式。
我尝试了以下所有方法并且 none 有效:
// try 1
string iconCode = "\u" + myCodeString;
// try 2
string iconCode = @"\u" + myCodeString;
// try 3
StringBuilder sb = new StringBuilder();
sb.AppendFormat("U+{0:X4} ", iconCode);
如何让它发挥作用?
基于,尝试
= System.Text.RegularExpressions.Regex.Unescape(@"\u" + myCodeString);
例如,如果myCodeString
包含"f135"
,这相当于
= System.Text.RegularExpressions.Regex.Unescape(@"\uf135");
这应该给你相同的结果:
= "\uf135";
包含该单个 unicode 字符的字符串。