在WPF应用程序中渲染符号

时间:2014-09-09 03:59:00

标签: c# wpf math

我需要在WPF应用程序中表示各种符号(数学,物理等)。

有没有办法以特殊格式阅读文本并将其转换为可以在WPF画布上显示的方程式或符号?

谢谢。

3 个答案:

答案 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表单上使用。