如何使用 2 个字符串在 TreeView 节点中显示图标?

How To Show Icon In TreeView Node Using 2 Strings?

如果我有一个字体为 Segoa UI 表情符号的 TreeView。我需要使用 2 个字符串设置 TreeView 节点图标但不起作用。此外,如果 unicode 只有 4 位数字,例如 2639,我可以为下面的 unicodeEndStr 变量使用什么值?

// This code shows emoji icon in treeview node followed by a space and some text
string emoji = "\U0001F608" + " " + "Face Savoring Food";
EmojiTreeView.Nodes.Add(emoji);

// This code does not show emoji icon, just \U0001F608 followed by a space and some text
string unicodeStartStr = "\U000"; // need double back slashes to compile
string unicodeEndStr = "1F608";
string emojiCodeStr = unicodeStartStr + unicodeEndStr;
string emojiStr = emojiCodeStr + " " + "Face Savoring Food";
EmojiTreeView.Nodes.Add(emojiStr); 

首先将组合的 Unicode 字符串解析为十六进制(16 位)数字。 然后使用 char.ConverFromUtf32(str).ToString() 生成完整的 Unicode 符号。

参考方案:Dynamic generate 8-Digit-Unicode to Character

public Form1()
{
           InitializeComponent();
           treeView1.Nodes.Add("\U0001F608" + " " + "Face Savoring Food");

           // remove \u prefix
           string unicodeStartStr = "000";  
           string unicodeEndStr = "1F608";
           string emojiCodeStr = unicodeStartStr + unicodeEndStr;
           int value = int.Parse(emojiCodeStr, System.Globalization.NumberStyles.HexNumber);
           string result = char.ConvertFromUtf32(value).ToString();
           string emojiStr = result + " " + "Face Savoring Food";
           treeView1.Nodes.Add(emojiStr);
}

Worked result