如何在WPF标签或面板中显示数学表达式?

时间:2013-07-25 14:26:12

标签: c# xaml latex label mathml

我正在编写显示大量数学内容的软件。在windows窗体中,很难在标签中设置下标或希腊字母,我正在考虑切换到WPF。

目前,我正在寻找在我的图形用户界面中渲染数学表达式,公式或符号的最佳方法。它们必须以标签或绘制的图形/图片显示。没有实时/即时渲染但美丽的修复符号。

最好的方法是什么?我想,MathML应该得到很好的支持,但我找不到很多。我很乐意听到一些建议。

在这里,我可以从(或者我更喜欢的)获取符号:

  • LaTeX-code(首选!代码已经存在,软件和文档中的相同外观将非常棒)
  • MathML代码(Word 2007或更高版本中的LaTeX代码 - > Word方程式 - >将纯MathML复制到剪贴板)
  • SVG(在Inkscape中渲染一些LaTeX并导出到XAML)
  • xmcd文件(Mathcad XML文档。不知道如何,但至少是XML)
  • html文件(由LaTeX-> html或Mathcad-> html
  • 编写

我个人不会考虑,但也许有很好的解决方案:

  • 图片(png - 图标,pdfdviepssvg直接导入)
  • 符号(例如从字符映射粘贴的副本。不喜欢字体,不会找到我需要的所有内容并且不会给出公式语法的交换)

我认为使用LaTeX,MathML或html会很棒,因为它们也可以用于文档。我也可以考虑将计算结果导出到*.tex文件或用LaTeX完全内部生成图形(tikz,pgfplots ......)

3 个答案:

答案 0 :(得分:1)

我会使用datatemplates进行纯xaml方法。不需要其他矢量格式或更新引擎。 您可以对表达式树中的每个表达式使用datatemplate。使用视图框可以实现拉伸,因此最顶层的表达式将比内部表达式大。您的datatemplates将从表达式树生成可视树。我的意思是在contentpresenter中会有contentpresenters。

最大的优点是表达式可视化可以是响应式和交互式的,就像MS Word或Excel中的数学表达一样。

我可以帮助你实现,因为如果你不熟悉wpf datatemplates那么这不是一件小事

答案 1 :(得分:1)

考虑使用开源WPF-Math库(免责声明:我是'当前的维护者'。

它可以帮助您在WPF窗口中显示LaTeX表达式。它还使用矢量图形而不是位图,因此公式将在现代显示器上很好地缩放。

答案 2 :(得分:0)

据我所知,最佳渲染(纸上)是通过矢量文件的延迟转换实现的。我更喜欢使用GDI +(System.Drawing)或WPF(System.Media)来渲染公式。如果我们可以就WPF解决方案进行合作,请告诉我。