2012-07-13 3 views
8

Ich habe eine SVG-Datei, die ich in einer .NET Windows Forms-Anwendung anzeigen muss. Dies ist ein common problem. Das WebBrowser-Steuerelement funktioniert jedoch nicht, da die Engine des IE mein SVG nicht korrekt darstellt (insbesondere ignoriert es die Whitespeicheranweisung). Ich schaute in Chrome und Firefox Kontrollen und sie funktionierten großartig, aber sie sind nur 32-Bit und andere Referenzen erfordern das Projekt im 64-Bit-Modus kompiliert werden. Sicherlich muss es eine Option geben, korrekt wiedergegebenes SVG im 64-Bit-Modus anzuzeigen?Wie kann ich eine SVG-Datei in einer 64-Bit-.NET-Anwendung anzeigen?

+0

Ich endete damit, 'System.Drawing.Graphics' zu verwenden, anstatt eine SVG zu schreiben und diese anzuzeigen. Erstaunlich, dass es dafür keine Lösung zu geben scheint. Hoffentlich ist das WebBrowser-Steuerelement in .NET 4.5 ein wenig mehr kompatibel. –

+0

+1 für IE ignoriert die Whitespace-Direktive. Gut zu wissen, schätze ich. –

Antwort

0

Ich habe SVG.NET (https://github.com/vvvv/SVG) mit WinForms versucht und es funktioniert ausgezeichnet.

+0

Ich habe so lange darauf gewartet, danke! –

+2

Ich habe mir dieses Steuerelement angesehen und es einfach SVG in das Rasterbild konvertieren. Mit diesem Ansatz verlieren wir alle Vorteile des SVG-Formats. – cezarypiatek

2

Probieren Sie die SVG Rendering Engine. Es sollte im 64-Bit-Modus arbeiten, da es vollständig verwalteten Code ist.

Eine andere Option ist SharpVectors.

+0

Es enthält keine .NET-Steuerelemente. Oder meinen Sie SVG als Bild rendern und dann anzeigen? –

+0

Exakt, ich meine Rendering der SVG als Bild und dann zeigen Sie es – Luxspes

+0

Aus irgendeinem Grund wird mein Text nicht angezeigt, wenn als PNG mit der SVG-Rendering-Engine gerendert (erste Option). –

Verwandte Themen