如何在WPF或WinForms中呈现公式

时间:2012-01-17 17:44:52

标签: c# wpf winforms user-controls

更新2018年 TL; DR; LaTEX for WPF https://github.com/ForNeVeR/wpf-math

原始问题 我需要有一种方法在Windows窗体或WPF中绘制数学公式。一些“FormulaTextBox”控件正是我需要的。

我不是要问LaTEX的完整实现,但至少有一些超出RichTextBox的可能性,包括分割线,平方根等。

4 个答案:

答案 0 :(得分:27)

以下是一些选项列表,这些选项来自多个网页,以及few similar questions来自SO

  • WPF-Math,一个用于渲染与数学相关的TeX标记的WPF库。
  • gNumerator是一个呈现MathML的WinForms控件。它是原生的C#,但看起来很旧。
  • Math Expressions,用于显示和编辑数学方程式的商业WinForms控件。 注意:不免费
  • C#WPF控件有unofficial port of JMathTex
  • Windows版本的LaTex编辑器Lyx使用名为MikTex的本地库,您可以查看。我在某处看到提到tex4ht包将数学方程呈现给图像
  • MimeTex / MathTex,正如您已经提到的那样
  • 您还可以使用WebBrowser控件,并在本地包含one of many javascript libraries来呈现LaTex。
  • 您可以将工作典当化为Microsoft Word(Example - 要求用户安装MS Word!

答案 1 :(得分:1)

也许您可以使用Wolfram Alpha API来检索图片。

答案 2 :(得分:0)

如果你想要RichTextBox之外的东西来渲染饼图,分区和sqr根等,你可以使用WebBrowserControl作为文本框。然后,为了渲染公式,您可以利用此网页中显示的技术,将其保存到桌面并打开html文件:

http://www.wjagray.co.uk/maths/ASCIIMathTutorial.html

显然你需要一个特殊的语法(或特殊的计算器按钮)来输入公式,我猜测通过查看驱动该网页的customisations.js文件,你也可以制作自己的运算符和函数列表。

答案 3 :(得分:0)

如果.NET特定解决方案都不适合您,我会采取以下措施:

它有点hacky,但它会工作,你的用户不会知道差异。下载Mathjax库。当您的用户输入等式时,您可以将等式转换为LaTex或MathML。然后,您将使用LaTex或MathML生成一个引用Mathjax的HTML文件,并在您的微小WebBrowser窗口中显示该文件(对WinForms和WPF都有效)。这不应该要求互联网连接。

就像我说的那样,你的用户不会更聪明。