Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/289.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在WPF或WinForms中呈现公式_C#_Wpf_Winforms_User Controls - Fatal编程技术网

C# 如何在WPF或WinForms中呈现公式

C# 如何在WPF或WinForms中呈现公式,c#,wpf,winforms,user-controls,C#,Wpf,Winforms,User Controls,2018年更新TL;博士WPF用乳胶 原始问题 我需要有一个方法来绘制在Windows窗体或WPF的数学公式。一些“FormulaTextBox”控件正是我所需要的 我不是在问LaTEX的全面实现,但至少有一些超出RichTextBox的可能性,包括除法线、平方根等。也许您可以使用来检索图像。这里是一个选项列表,从几个在线网页中提取,以及一个等等 ,一个WPF库,用于呈现与数学相关的TeX标记 是一个WinForms控件,用于呈现。它是土生土长的C#,但似乎很古老 ,一个商业WinForms

2018年更新TL;博士WPF用乳胶

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


我不是在问LaTEX的全面实现,但至少有一些超出RichTextBox的可能性,包括除法线、平方根等。

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

这里是一个选项列表,从几个在线网页中提取,以及一个等等

  • ,一个WPF库,用于呈现与数学相关的TeX标记
  • 是一个WinForms控件,用于呈现。它是土生土长的C#,但似乎很古老
  • ,一个商业WinForms控件,用于显示和编辑数学公式注意:不是免费的
  • C#WPF控件有一个连接
  • LaTex编辑器的Windows版本使用了一个名为“您可以查看”的本机库。我在某处看到有人提到,
    tex4ht
    包将数学方程渲染为图像
  • /,正如你已经提到的
  • 您还可以使用
    WebBrowser
    控件,只需本地包含即可渲染LaTex
  • 您可以将该工作转移到Microsoft Word上(-需要用户安装MS Word!)

如果您希望使用RichTextBox以外的功能来渲染饼图、分割和sqr根等,您可以将WebBrowserControl用作textbox。然后,要呈现公式,您可以利用此网页中显示的技术,将其保存到桌面并打开html文件:


显然,您需要一种特殊的语法(或特殊的计算器按钮)来输入公式,我从驱动该网页的customisations.js文件中猜测,您也可以创建自己的运算符和函数列表。

如果.NET特定的解决方案都不适用于您,我会这样做:

这有点骇客,但它会工作,你的用户不会知道区别。下载图书馆。当用户输入方程式时,可以将方程式转换为LaTex或MathML。然后,使用LaTex或MathML生成一个引用Mathjax的HTML文件,并将该文件显示在小小的WebBrowser窗口中(对WinForms和WPF都有效)。这不需要互联网连接


正如我所说,您的用户不会再聪明了。

谢谢您的回复。但这不只是网络吗?如何将其嵌入为Statalone winforms控件?请您提供一些简短的提示或代码好吗?这有点冒险,但您可以使用WebRequest从winforms应用程序调用API,并将响应解析为XML以获得正确的节点。然后将图片盒的来源设置为url,这就是为什么使用“独立”这个词。“使用WebRequest”对于独立应用程序来说负担太重。我同意,在少数情况下,这是可以接受的。但这绝对不是winforms或WPF的一般答案。+1-即使它是一个独立的应用程序,一个上网并使用Wolfram Alpha API的模式也是一个好主意。“一个上网并使用Wolfram的模式”-一个很好的笑话,是的)告诉它你的客户())这看起来可能有助于从第一眼看上去很有趣。非常感谢。我明天会复习并在这里发布。+1你可能配得上这个邦特里。。。在发布我的答案之前,我没有看到您的WebBrowser控制点。WPF-Math现在处于活动状态。我把它交给了GitHub,联系了原作者,得到了他的祝福。看见