c# - 如何使用 2 个字符串在 TreeView 节点中显示图标?
问题描述
如果我有一个带有 Segoa UI Emoji 字体的 TreeView。我需要使用 2 个字符串设置 TreeView 节点图标,但不起作用。unicodeEndStr
另外,如果 unicode 只有 4 位数字,我可以为下面的变量使用什么值2639
?
// 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 符号。
参考解决方案:动态生成 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);
}
推荐阅读
- docker - 使用 Compose 运行时 Dockerfile 中的网络无法访问
- reactjs - 将 React 应用程序添加到 GitHub 上的现有文件夹
- python - 根据df中行中的列值和其他行中的列值创建新列?
- angular - 在 Angular 项目中包含 Material Icons 的最佳实践、可摇树的方式是什么?
- r - ggplot2::geom_point() 的大小是指半径、直径、面积还是其他?
- python - Python 简单循环无法按预期工作
- mysql - 如何将 BOT 框架集成到基于 CMS 的网站中以回答常见问题解答应该从后端获取哪些问题
- azure-devops - 在哪里可以找到 Azure Devops 中失败的 VSTest 的日志?
- tensorflow - 使用 Tensorflow Extended 时,如何使用本地 CSV 文件运行我的 apache 光束管道?
- camunda - Spring Cloud Gateway 后面的 Camunda 没有返回驾驶舱的 CSS 文件