2010-11-26 13 views
7

Ich möchte eine kleine Mathe-Solver-Anwendung in Wpf oder Silverlight erstellen, die Arbeit zeigt. Etwas Ähnliches wie Microsoft Math kann tun. Wie bekomme ich diese Grafiken wie die Klammern mit der Fähigkeit, vertikal zu strecken, basierend auf wie viele Zeilen in der Gleichung sind?C# Math Grafikbibliothek

Gibt es Bibliotheken, die diese Grafiken enthalten und die Schritte für .net anzeigen?

+0

Ich würde vorschlagen, den Titel zu bearbeiten, so gibt es keinen Verweis auf "Symbol". Sie sprechen nicht über Icons, sondern nur über eine Grafikbibliothek. Als Einstieg möchten Sie sich vielleicht diese Frage und ihre Links ansehen: http://StackOverflow.com/questions/1691982/How-to-include-math-symbols-in-editor-or-textbox –

+0

Es gibt eine math equation control unter folgendem Link. Ich bin mir nicht sicher, wie umfassend es ist. Und wenn Sie es für kommerzielle Zwecke benötigen, müssen Sie den Besitzer kontaktieren. http://windowsclient.net/downloads/folders/controlgallery/entry2346.aspx – Liz

Antwort

0

Sie könnten dies einfach mit MathJAX und JavaScript tun.

+0

Könnte das in einer wpf app funktionieren? –

+0

Ich kann mir nicht vorstellen, warum diese Antwort fast fünf Jahre nach ihrer Veröffentlichung für einen Downvote ausgewählt wurde. Die Antwort darunter, die meines zitierte, erhielt keine solche Behandlung. Moderatoren? – duffymo

+0

@duffymoi denke, es ist, weil er einen Schritt weiter ging und ein Beispiel gab – bigworld12

6

Basierend auf @ duffymo Antwort könnten Sie einen Web-Browser laden WPF Webbrowser und injizieren die MathJAX Bibliothek

Zum Vergleich:

<Window x:Class="WpfApplication1.Window1" 
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
Title="Window1" Height="300" Width="300"> 
<Grid> 
    <WebBrowser x:Name="Browser" /> 
</Grid> 

Sie mit dem JavaScript-API interagieren kann diesen Code verwenden:

public partial class Window1 : Window 
{ 
    public Window1() 
    { 
     InitializeComponent(); 
     Browser.LoadCompleted += BrowserOnLoadCompleted; 
     Browser.Navigate(new Uri("http://example.com")); 
    } 

    private void BrowserOnLoadCompleted(object sender, NavigationEventArgs navigationEventArgs) 
    { 
     var doc = (HTMLDocument)Browser.Document; 
     var head = doc.getElementsByTagName("head").Cast<HTMLHeadElement>().First(); 
     var script = (IHTMLScriptElement)doc.createElement("script"); 
     script.text = "alert('hi');"; 
     head.appendChild((IHTMLDOMNode)script); 
     script.text = "alert('bye');"; 
    } 
}