如何在 WPF 或 WinForms 中呈现公式

本文关键字:WinForms WPF | 更新日期: 2023-09-27 18:20:29

Update 2018 TL;DR;LaTEX for WPFhttps://github.com/ForNeVeR/wpf-math

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

我不是在问LaTEX的完整实现,但至少是超越RichTextBox可能性的东西,包括分界线,平方根等。

如何在 WPF 或 WinForms 中呈现公式

以下是从

在线几个网页中提取的选项列表,以及有关SO的一些类似问题

  • WPF-Math,一个用于呈现与数学相关的 TeX 标记的 WPF 库。
  • gNumerator 是一个呈现 MathML 的 WinForms 控件。 它是本机 C#,但似乎很旧。
  • 数学
  • 表达式,用于显示和编辑数学公式的商业 WinForms 控件。 注意:不是免费的
  • 有一个非官方的JMathTex移植到C# WPF控件
  • Windows版本的LaTex编辑器Lyx使用一个名为MikTex的本机库,你可以看看。 我在某处看到提到 tex4ht 包将数学方程式渲染为图像
  • MimeTex/MathTex,正如你已经提到的
  • 您还可以使用 WebBrowser 控件,并在本地包含用于呈现 LaTex 的众多 JavaScript 库之一。
  • 您可以将工作典当到Microsoft Word上(示例 - 要求用户安装MS Word!

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

如果你想要一些超出RichTextBox功能的东西来呈现饼图,除法和sqr根等,你可以使用WebBrowserControl(s(作为文本框。然后,要呈现公式,您可以利用此网页中显示的技术,将其保存到桌面并打开 html 文件:

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

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

如果没有特定于 .NET 的解决方案适合您,我会执行以下操作:

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

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