2009-09-28 10 views
9

Sto lavorando con una libreria che rende parte del suo stato come un documento SVG.Esiste un modo per eseguire il rendering di SVG in Windows Form?

Mi piacerebbe eseguire il rendering in Windows Form o in un ambiente WPF. C'è attualmente un modo per farlo?

In caso contrario, potrei modificare la libreria per utilizzare una strategia di rendering più generale e quindi aggiungere un adattatore XML per ripristinare la funzionalità originale, ma questa non è la mia strategia preferita.


Questa domanda potrebbe anche beneficiare di una risposta: How do I display vector graphics (SVG) in a Windows Forms application?

risposta

3

Qui ci sono due link che potrebbero aiutarti (mai usato uno dei due, io stesso):

https://github.com/vvvv/SVG

http://sourceforge.net/projects/svgdomcsharp/

+0

Le mie competenze di google funzionano, quindi avevo già trovato queste due. Infatti, attualmente sto implementando un'interfaccia per facciata che può nascondere un oggetto SvgNet.SvgGraphics o un oggetto System.Drawing.Graphics. Posso usare questo 'IGraphicsFacade' per renderizzare, e renderizzare con la grafica Svg o un vero oggetto Graphics. È un po 'complicato, però. –

+0

@John: proverei l'altra risposta nella domanda a cui ti sei collegato. I browser possono eseguire il rendering di file SVG, quindi dovrebbe essere abbastanza semplice inserire un controllo WebBrowser in un modulo e impostarne la proprietà Url nel file SVG. – MusiGenesis

+0

E mi dispiace per i link di Google - non sai mai cosa le persone possono o non possono fare. Almeno non ho usato www.lmgtfy.com. – MusiGenesis

1

Hav hai guardato Ab2d set di Apis? ReaderSvg e ViewerSvg sembrano fare il lavoro? Ma non sono gratis!

+0

Questo è WPF, non Winforms. –

+0

Si può ancora usare un 'host di elementi WPF' in WinForms (vedi * WPF \t interoperabilità * in Toolbox) –

2

Se si utilizza il controllo del browser Web per SVG. Si verificherà un problema con la violazione di accesso a causa della prevenzione dell'esecuzione dei dati.

La soluzione è quella di avere le seguenti righe nel tuo post-costruire eventi

call "$(DevEnvDir)..\..\VC\bin\vcvars32.bat" 
call "$(DevEnvDir)..\..\VC\bin\editbin.exe" /NXCOMPAT:NO "$(TargetPath)" 

Per ulteriori informazioni consultare questo link http://blogs.msdn.com/b/ed_maurer/archive/2007/12/14/nxcompat-and-the-c-compiler.aspx

Problemi correlati