如何在SymbolIcon枚举中使用其他图标?

时间:2016-06-29 23:15:16

标签: xaml uwp

我在我的UWP应用程序中使用SymbolIcon控件,这非常方便。但我发现其他应用程序使用的枚举符号比枚举更多。我怎样才能使用它们?

2 个答案:

答案 0 :(得分:5)

The SymbolIcon enumeration是一组标准的常用图标。但它们实际上是Segoe MDL2 Assets字体中字符的快捷方式。如果您打开Word,您可以选择该字体。如果您然后转到插入 - 符号 - 符号 - 更多符号...您会看到该字体中的所有可用图标。如果单击其中一个图标,则还会看到该图标的字符代码(例如,耳机图标为E95B)。

要使用其他人,您可以使用FontIcon控件并设置Glyph属性。根据您使用它的位置,有不同的设置方法。对于带有字符代码E95B的示例Headset图标,您可以这样做:

在XAML中,您可以这样定义:

<FontIcon x:Name="SampleFontIcon" Glyph="&#xE95B;" FontSize="200" />

您需要在&amp; #x之前加上值,然后用半圆关闭它。如您所见,您可以使用FontSize属性确定大小。 如果要在C#代码中设置值,可以这样做:

SampleFontIcon.Glyph = "\uE95B";

我曾经想调试这些值并想出了这个方法来显示值:

private string getUnicodeString(string input)
{
    byte[] bytes = Encoding.Unicode.GetBytes(input);
    if (bytes.Length == 0) return "";
    string output = "\\u";
    for (int i = bytes.Length - 1; i >= 0; i--)
        output += string.Format("{0:X}", bytes[i]);
    return output;
}

现在,您可以将字形值转换回您在代码中熟悉的内容。

答案 1 :(得分:2)

马丁的回答是绝对正确的,只有我的两点。

如果你想看到所有可能的Segoe图标,比Word更好的是运行内置的Windows应用程序&#39;字符映射&#39;,您可以选择&#39; Segoe MDL2资产&#39;你会看到代码和图标。

即使在基本的TextBlock中你也可以使用这个图标,你只需要改变FontFamily:

<TextBlock FontFamily="Segoe MDL2 Assets"
           Text="&#xE700;"
           ..... />
相关问题