如何使用 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
如果我有一个字体为 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