在WPF应用程序中渲染符号

本文关键字:符号 WPF 应用程序 | 更新日期: 2023-09-27 18:21:13

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

有没有什么方法可以读取特殊格式的文本,并将其转换为可以在WPF画布上显示的公式或符号?

谢谢。

在WPF应用程序中渲染符号

我要做的是自己滚动,这并不难。STIX字体有1700多个数学和工程符号,是一种免费字体。您可以从这里下载TTF端口。您要做的是将字体嵌入到应用程序中。这个博客将教你如何做到这一点。最后,创建某种标记,将文本映射到适当的符号。例如,{PI}可以映射到显示PI符号的字体中的unicode字符。在你的计算机上安装字体,然后你可以转到这个页面查看所有的字形以及它们映射到的Unicode字符

private string MarkupToUnicode(string markup)
{
    markup = markup.Replace("{PI}", "'U000003D6");
    markup = markup.Replace("{PHI}", "'U000003D5");
    return markup;
}

这将根据本页正确映射PI符号和PHI符号。当然,你必须添加你计划使用的额外符号(是的,我知道这是一项乏味的任务)

因此,一旦您有了用适当的Unicode替换来替换标记代码的函数,请将该文本设置为TextBlock对象,将TextBlock的FontFamily属性设置为嵌入的STIX字体,然后将TextBlock放置在画布和中提琴上!

当您想要"特殊字符或符号"时,您可能应该使用图像,而不是依赖于字体。

我建议寻找像图像这样的符号,并在你的WPF画布中使用它们。

如果你有这个符号的矢量表示,你可以很容易地将它转换为WPF路径(或几何体)对象,这样它就可以在WPF表单上使用。