2013-07-25 10 views
5

Piszę oprogramowanie, które wyświetla wiele treści matematycznych. Podobnie jak w przypadku formularzy Windows już trudno jest ustawić indeks dolny lub grecką literę w etykiecie, myślę o przejściu na WPF.Jak wyświetlić wyrażenia matematyczne w etykietach lub panelach WPF?

W tej chwili szukam najlepszego sposobu renderowania wyrażenia matematycznego, wzoru lub tylko symbolu wewnątrz mojego graficznego interfejsu użytkownika. Muszą być wyświetlane na etykietach lub rysunkach graficznych/obrazach. Bez renderowania na żywo/just-in-time, ale piękne symbole napraw.

Jaki jest najlepszy sposób na zrobienie tego? Pomyślałem, że MathML powinien być dobrze obsługiwany, ale nie mogę znaleźć wiele na ten temat. Byłbym zadowolony słuchając rad.

Oto, gdzie mogę dostać moje symboli z (lub co wolałbym): (! Pierwszy wybór Code jest już tam i sam wygląd w oprogramowanie i dokumentacja byłaby cudowna)

  • lateksu kod
  • MathML-code (LaTeX-Code w programie Word 2007 lub wyższym -> równania Słowo -> Kopiuj jako zwykły MathML do schowka)
  • SVG (niektóre renderowania LaTeX w Inkscape i eksport do XAML)
  • xmcd Files (Dokument XML Mathcad. Nie wiem jak , Ale przynajmniej jest to XML)
  • html Files (napisany przez Latex-> html lub Mathcad-> html

Co nie uważam osobiście, ale być może istnieją dobre rozwiązania:

  • Images (png -icons, pdf, dvi, eps, svg bezpośrednio importowane)
  • symbole (jak kopia wklejony z Tablicy znaków. Nie lubię czcionek, nie znajdę wszystkiego, czego potrzebuję i nie zostanie podana wymiana składni formuły)

Myślę, że używanie LaTeXa, MathMLa lub html byłoby wspaniałe, ponieważ mogłyby zostać użyte również do dokumentacji . Mógłbym także pomyśleć o eksportowaniu wyników obliczeń do plików *.tex lub wewnętrznie generować grafikę całkowicie za pomocą LaTeX (tikz, pgfplots ...)

+3

Szybkie wyszukiwanie dało mi to nadzieję, że pomoże http://stackoverflow.com/questions/8899204/how-to-render-a-formula-in-wpf-or-winforms –

+0

Czy wymóg wykracza poza standardowe znaki Unicode w stylu XML, gdzie na przykład możesz wyświetlić coś takiego jak symbol nieskończoności za pomocą '& # x221E;'? –

+1

@JoeStanton Thx o link. Też to znalazłem. Ale wszystko jest "stare", "nieaktywne", "nieoficjalne" lub po prostu czasochłonne dla mojego celu. Miałem nadzieję uzyskać nowsze pomysły, ponieważ XAML staje się coraz bardziej popularny w ostatnim czasie. Mam kilka pomysłów z tego linku, ale mam nadzieję, że jest coś bardziej praktycznego. – LaRiFaRi

Odpowiedz

1

Chciałbym iść z czystym podejściem XAML przy użyciu datatemplates. Nie ma potrzeby stosowania innego formatu wektorowego lub silnika rederingowego. Możesz użyć datatemplate dla każdego wyrażenia w drzewie wyrażeń. Używając widoków, możesz osiągnąć rozciąganie, więc wyrazy najwyższe będą większe niż wyrażenia wewnętrzne. Twoje datatyplates wygeneruje wizualne drzewa z drzewa wyrażenie. Chodzi mi o to, że w contentpresenter będą content-presenters.

Ogromnym plusem jest to, że wizualizacja wypowiedzi może być responsywna i interaktywna, podobnie jak wyrażenie matematyczne w MS Word lub Excel.

mogę pomóc z realizacji, ponieważ nie jest to trywialne, jeśli nie jesteś zaznajomiony z datatemplates WPF

+0

Jednak będzie to zdecydowanie czasochłonne zadanie do wykonania tego – Liero

0

O ile widzę, najlepiej renderingu (na papierze) uzyskuje się z późnego nawrócenia od plik wektorowy. Wolałbym używać GDI + (System.Drawing) lub WPF (System.Media) do renderowania formuły. Daj mi znać, jeśli możemy współpracować przy rozwiązaniu WPF.

0

Rozważ skorzystanie z biblioteki open-source WPF-Math (zrzeczenie się: jestem jej bieżącym opiekunem).

Może pomóc wyświetlić wyrażenie LaTeX w oknie WPF. Wykorzystuje również grafikę wektorową zamiast bitmap, więc formuły będą skalować się ładnie na nowoczesnych wyświetlaczach.

Powiązane problemy