Как отобразить формулу в WPF или WinForms - PullRequest
29 голосов
/ 17 января 2012

Обновление 2018 TL; DR; LaTEX для WPF https://github.com/ForNeVeR/wpf-math

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

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

Ответы [ 4 ]

27 голосов
/ 31 января 2012

Вот список вариантов, взятых с нескольких веб-страниц в Интернете, а также несколько похожих вопросов на SO

  • WPF-Math , библиотека WPF для отрисовки математической разметки TeX.
  • gNumerator - это элемент управления WinForms, который отображает MathML . Это родной C #, но, похоже, довольно старый.
  • Math Expressions , коммерческий элемент управления WinForms для отображения и редактирования математических уравнений. Примечание: не бесплатно
  • Существует неофициальный порт JMathTex для управления C # WPF
  • Windows-версия редактора LaTex Lyx использует собственную библиотеку под названием MikTex , на которую вы можете взглянуть. Я где-то упоминал, что пакет tex4ht отображает математические уравнения для изображений
  • MimeTex / MathTex , как вы уже упоминали
  • Вы также можете использовать WebBrowser элемент управления и просто локально включать один из много javascript библиотеки для рендеринга LaTex.
  • Вы можете заложить работу на Microsoft Word ( Пример - требует, чтобы пользователи установили MS Word! )
1 голос
/ 30 января 2012

Возможно, вы можете использовать Wolfram Alpha API для получения изображений.

0 голосов
/ 04 февраля 2012

Вот что я бы сделал, если бы ни одно из .NET-решений не помогло вам:

Это немного глупо, но это сработает, и ваши пользователи не почувствуют разницу. Загрузите библиотеку Mathjax . Когда ваш пользователь вводит в уравнение, вы можете преобразовать уравнение в LaTex или MathML. Затем вы должны взять LaTex или MathML и сгенерировать файл HTML, который ссылается на Mathjax, и отобразить файл в вашем крошечном окне WebBrowser (действительно как для WinForms, так и для WPF). Для этого не требуется подключение к интернету.

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

0 голосов
/ 31 января 2012

Если вы хотите, чтобы что-то помимо способностей RichTextBox отображало круговые диаграммы, деления и корни sqr и т. Д., Вы можете просто использовать WebBrowserControl (s) в качестве текстовых полей. Затем для рендеринга формул можно использовать методы, показанные на этой веб-странице, сохранить их на рабочем столе и открыть файл html:

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

Очевидно, что вам понадобится специальный синтаксис (или специальные кнопки калькулятора) для ввода формулы, и я думаю, что, глядя на файл customisations.js, управляющий этой веб-страницей, вы также можете составить свой собственный список операторов и функций.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...