我需要在WPF应用程序中表示各种符号(数学,物理等)。
有没有办法以特殊格式阅读文本并将其转换为可以在WPF画布上显示的方程式或符号?
谢谢。
答案 0 :(得分:3)
我要做的就是自己动手,而且不难做到。 STIX font's以字体的形式有1700多个数学和工程符号,它是一个免费字体。您可以下载TTF port from here。您要做的是将字体嵌入应用程序中。 This blog会教你如何做到这一点。最后,创建某种标记以将文本映射到适当的符号。例如,{PI}
可以映射到显示PI符号的字体中的unicode字符。在您的计算机上安装该字体,然后您可以转到this page以查看所有字形以及它们映射到的Unicode字符。因此,映射函数的示例可能如下所示:
private string MarkupToUnicode(string markup)
{
markup = markup.Replace("{PI}", "\U000003D6");
markup = markup.Replace("{PHI}", "\U000003D5");
return markup;
}
根据this page,这将正确映射PI符号和PHI符号。当然,你必须添加你计划使用的额外符号(是的,我知道这是一项繁琐的工作)
因此,一旦你的函数用适当的Unicode替换替换你的标记代码,将该文本设置为TextBlock对象,将TextBlock的FontFamily属性设置为嵌入的STIX字体,然后将TextBlock放在画布和中提琴上!
答案 1 :(得分:-1)
当你想要"特殊字符或符号"你可能应该使用图像而不是依赖字体。
我建议将这些符号作为图像来查找,并在WPF Canvas中使用它们。
答案 2 :(得分:-1)
如果你有这个符号的矢量表示,你可以很容易地将它转换为WPF Path(或Geometry)对象,因此它可以在WPF表单上使用。