【问题标题】:Referencing symbols of a font that don't have a unicode in c#在 c# 中引用没有 unicode 的字体符号
【发布时间】:2020-11-04 23:00:06
【问题描述】:

我正在尝试在 Xamarin 应用程序中使用图标字体。它实际上很简单,我让字体工作。 但是,使用 Unicode 来引用符号可以正常工作,如下所示:

Label iconLabel = new Label
{
   Text = "\u0078"
};

但我发现这种字体只有几个符号分配了 unicode,其他符号只有一个名称。该图标字体通常应该在 html 中使用,这些符号可以通过名称引用。

如果我尝试在 C# 中执行此操作:Text = "arrow_down" 它将不起作用,因为它只显示纯文本。

有没有一种方法可以处理符号的名称,或者有一种方法可以自动将 unicodes 添加到此字体中的每个符号?

【问题讨论】:

  • "这个字体只有几个符号分配了 unicode,其他符号只有一个名称" - 你是什么意思?那些幸运地获得 unicode 的符号和那些只有名字的符号是什么?什么名字?你是在说HTML(也许this one 更好)?
  • 要输出,你必须使用\u2193(参考this handy table
  • @Sinatr arrow_down 只是一个例子。为了最好地展示我的意思,here 是我正在谈论的字体。我正在使用this 工具检查字体,大多数符号/图标都说“unicode:none”,所以我不知道如何引用这些特定符号。
  • 自己从来没有做过字体,不知道unicode:none是什么。要显示自定义字体中的字符,您必须加载此字体然后渲染字符串。目前还不清楚你想要什么。您不能将字符名称传递给字体。 C# 支持某些转义序列(\u 是其中之一来指定 unicode),但没有像 \arrow_down 这样的东西,这就是我问你关于 html 的原因。您的示例 Text = "arrow_down" 永远不会是单个字符。谁将指定"arrow_down"?应用程序的用户?您可以使用占位符并将其替换为实际的 unicode 字符。
  • 基本上我想做的就是访问该字体的每个符号,但只有少数符号具有 unicode 引用,或者至少我找不到获取其他 unicode 符号的方法。跨度>

标签: c# unicode fonts


【解决方案1】:

我最终使用了出色的工具 fontello 并上传了开源图标字体,从中选择了所有符号并再次下载 - 它为每个符号生成了新的 unicode,我现在让它像魅力一样工作. (此外,fontello 会生成一个很棒的电子表格,显示每个符号的每个代码)。

最后我想这是解决这个问题的最聪明的方法 - 如果您需要通过 unicode 从字体访问符号但字体没有为此布局,请使用 fontello 之类的工具生成您自己的.

【讨论】:

    猜你喜欢
    • 2015-12-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多