组合框中的填充转义序列字符显示空格

时间:2014-07-21 11:55:33

标签: c# wpf combobox true-type-fonts

我正在使用ttf文件中的所有字符绑定一个组合框。组合框显示某些字符的空白空间,如\ n \ r \ t \ a等。我无法找到原因。

这是我填充所有符号的代码

var families = Fonts.GetFontFamilies(new Uri(fontFilePath));
            foreach (FontFamily family in families)
            {
                var typefaces = family.GetTypefaces();
            foreach (Typeface typeface in typefaces)
            {
                GlyphTypeface glyph;
                typeface.TryGetGlyphTypeface(out glyph);
                IDictionary<int, ushort> characterMap = glyph.CharacterToGlyphMap;

                foreach (var item in characterMap.Values)
                {
                    char temp = Convert.ToChar(item);
                    string str = string.Format("{0}", temp);
                    if (!listOfString.Contains(str))
                    {
                        listOfString.Add(str);
                    }
                }
            }
        }
        listOfString.Sort();
        ddlSymbols.ItemsSource = listOfString;

任何帮助都将受到高度赞赏。提前致谢。

1 个答案:

答案 0 :(得分:1)

在C#中,一些字符被称为&#34;转义序列&#34;并且是特殊字符。

  • \&#39; (UTF-16:\ u0027)=允许在字符文字中输入',例如&#39; \&#39;&#39;
  • \&#34; (UTF-16:\ u0022)=允许在字符串文字中输入",例如&#34;这是 双引号(\&#34;)字符&#34;
  • \\ u005c允许在字符或字符串文字中输入\字符,例如&#39; \&#39;或者&#34;这是反斜杠 (\)字符&#34;
  • \ 0(UTF-16:\ u0000)=允许输入代码为0的字符
  • \ a(UTF-16:\ u0007)=闹铃(通常是HW蜂鸣声)
  • \ b(UTF-16:\ u0008)=后退空间
  • \ f(UTF-16:\ u000c)=换页(下一页)
  • \ n(UTF-16:\ u000a)=换行(下一行)
  • \ r \ n(UTF-16:\ u000d)=回车(移至行首)
  • \ t(UTF-16:\ u0009)=(水平 - )标签
  • \ v(UTF-16:\ u000b)= vertical-tab

因此,当您映射角色时,会使用它们的特殊行为。