gpt4 book ai didi

c# - Segoe UI 符号 - 以编程方式

转载 作者:行者123 更新时间:2023-11-30 15:31:02 30 4
gpt4 key购买 nike

编辑:

下面是我的 XML 格式。它包含我的 IconSheet 的数据。我只放了一个图标十六进制值作为示例。

<Item>
<ItemInfo>
<Value>uE101</Value>
<Name>1</Name>
</ItemInfo>
</Item>

这是我的代码片段

private void OnLoaded(object sender, RoutedEventArgs e)
{
data = (from query in XElement.Load("Data.xml").Descendants("ItemInfo")
select new ItemInfo
{
value = (int)(query.Element("Value").Value),
name = (string)query.Element("Name")
}).ToList();
int itemcount = data.length;
while (itemcount-- > 0)
{
TextBlock t = new TextBlock()
{
Width = 75,
Height = 75,
Text = @"\" + data[itemcount].value,
FontFamily = new FontFamily("Segoe UI Symbol")
};
wrapPanel.Children.Add(t);

}
}

在上面的代码段中,data[itemcount].value 包含数据“uE101”。这是行不通的。

下面的代码有效。

Text = "\uE101"

任何帮助将不胜感激。

更新:

har07mishan 评论的帮助下,我现在对如何在 C# 中处理 HEX 代码有了清晰的认识。谢谢您的帮助。但是我更新了我正在尝试的问题,这就是导致我出现问题的原因。

最佳答案

在这种情况下,您不能将反斜杠与下一个字符分开。这段代码:

@"\" + "uE101"

等于这个:

"\\uE101"

这将输出这个字符串而不是特殊字符:

\uE101

它们需要写成单个字符串表达式:

"\uE101"

更新:

您可以使用@mishan 的第二个解决方案,将字符的十六进制部分仅存储在 xml ( <Value>E101</Value> ) 中,然后将其解析为 int -> 将 int 转换为 char -> 将 char 转换回字符串(以下是示例来阐明我的意思):

.....
TextBlock t = new TextBlock()
{
Width = 75,
Height = 75,
Text = ((char)int.Parse(data[itemcount].value, NumberStyles.HexNumber)).ToString(),
FontFamily = new FontFamily("Segoe UI Symbol")
};
.....

或者将确切的字符写入 xml 并将 xml 编码指定为支持您的特殊字符的格式。您没有显示创建该 xml 的代码,因此我无法帮助您提供接近您的示例。但是你可以通过关键字“c# write xml document with specific encoding”搜索这个话题,会找到很多例子。

关于c# - Segoe UI 符号 - 以编程方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21259326/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com