Подтвердить что ты не робот

Как визуализировать формулу в WPF или WinForms

Мне нужно иметь способ нарисовать математическую формулу в Windows Forms или WPF. Некоторый контроль "FormulaTextBox" будет именно тем, что мне нужно.

Я не спрашиваю о полной реализации LaTEX, но, по крайней мере, о чем-то, кроме возможностей RichTextBox, с разделительными линиями, квадратными корнями и т.д.

P.S. С# настолько мощный. Способ рисования формул с С# (.NET) должен быть с нами!

Решения найдены:

  • Это решение использует библиотеку MathTex (MimeTex в прошлом) для создания gif файлов от TeX как строки.
    Минусы:

    • Нет версии Windows для поддерживаемой библиотеки и проверено. В этой статье рассматриваются утечки памяти и другие проблемы, которые могут возникнуть из-за этого. Нужно настроить и поддерживать версию Windows самостоятельно.

    • Общий подход имеет неестественный дизайн для winforms или WPF. Хотя он может поместиться в Интернете, он выглядит далеко не столь оптимальным для winforms.

    • Из примера статьи можно сделать что-то вроде реального рабочего элемента управления (всегда есть что-то делать, но я хотел бы получить более готовое решение)

4b9b3361

Ответ 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). Это не должно требовать подключения к Интернету.

Как я уже сказал, ваши пользователи не будут более мудрыми.