Как визуализировать формулу в WPF или WinForms
Мне нужно иметь способ нарисовать математическую формулу в Windows Forms или WPF. Некоторый контроль "FormulaTextBox" будет именно тем, что мне нужно.
Я не спрашиваю о полной реализации LaTEX, но, по крайней мере, о чем-то, кроме возможностей RichTextBox, с разделительными линиями, квадратными корнями и т.д.
P.S. С# настолько мощный. Способ рисования формул с С# (.NET) должен быть с нами!
Решения найдены:
Ответы
Ответ 1
Здесь список опций, извлеченных из нескольких веб-страниц в Интернете, а также несколько похожих questions на SO
- WPF-Math, (неактивная) библиотека WPF для рендеринга связанного с математикой Tex.
- gNumerator - это элемент управления WinForms, который отображает MathML. Он является родным С#, но выглядит довольно старым.
- Math Expressions - коммерческий элемент управления WinForms для отображения и редактирования математических уравнений. Примечание: не бесплатно
- Там неофициальный порт JMathTex для управления С# WPF
- Версия редактора LaTex для Windows Lyx использует родную библиотеку под названием MikTex вы можете посмотреть. Я где-то заметил, что пакет
tex4ht
отображает математические уравнения на изображения
- MimeTex/MathTex, как вы уже упоминали
- Вы также можете использовать элемент управления
WebBrowser
и просто локально включать один many javascript библиотеки для рендеринга LaTex.
- Вы можете заложить работу в Microsoft Word (Пример - требуется, чтобы пользователи установили MS Word!)
Ответ 2
Возможно, вы можете использовать Wolfram Alpha API для извлечения изображений.
Ответ 3
Если вам нужно что-то помимо возможностей RichTextBox для рендеринга pie, делений и корней sqr и т.д., вы можете просто использовать WebBrowserControl (s) как текстовые поля. Затем, чтобы вынести формулу, вы можете использовать методы, показанные на этой веб-странице, сохранить ее на рабочем столе и открыть html файл:
http://www.wjagray.co.uk/maths/ASCIIMathTutorial.html
Очевидно, вам понадобится специальный синтаксис (или специальные кнопки калькулятора), чтобы ввести формулу, и я предполагаю, что посмотрю файл customisations.js, управляющий этой веб-страницей, и вы можете создать свой собственный список операторов и функций.
Ответ 4
Вот что я сделал бы, если ни одно из специальных решений .NET не будет работать для вас:
Это немного взломанный, но он будет работать, и ваши пользователи не будут знать разницу. Загрузите библиотеку Mathjax. Когда ваш пользователь входит в уравнение, вы можете преобразовать уравнение в LaTex или MathML. Затем вы берете LaTex или MathML и генерируете HTML файл, который ссылается на Mathjax, и отображает файл в вашем маленьком окне WebBrowser (действительный как для WinForms, так и для WPF). Это не должно требовать подключения к Интернету.
Как я уже сказал, ваши пользователи не будут более мудрыми.