2009-09-28 10 views
9

Pracuję z biblioteką, która renderuje część swojego stanu jako dokument SVG.Czy istnieje sposób renderowania SVG w Windows Forms?

Chciałbym renderować to w środowisku Windows Forms lub WPF. Czy istnieje obecnie sposób na zrobienie tego?

Jeśli nie, mogę zmodyfikować bibliotekę, aby użyć bardziej ogólnej strategii renderowania, a następnie dodać adapter XML w celu przywrócenia pierwotnej funkcjonalności, ale nie jest to moja preferowana strategia.


To pytanie również może korzystać z odpowiedzią: How do I display vector graphics (SVG) in a Windows Forms application?

Odpowiedz

3

Oto dwa linki, które mogą Ci pomóc (nigdy nie używane albo jeden, ja):

https://github.com/vvvv/SVG

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

+0

Moje umiejętności Google działają, więc znalazłem te dwa wcześniej. W rzeczywistości implementuję interfejs fasady, który może ukryć obiekt SvgNet.SvgGraphics lub obiekt System.Drawing.Graphics. Mogę użyć tego 'IGraphicsFacade' do renderowania i renderowania do tej grafiki Svg lub prawdziwego obiektu graficznego. Jest to jednak nieco skomplikowane. –

+0

@John: Spróbowałbym innej odpowiedzi w pytaniu, z którym się łączyłeś. Przeglądarki mogą renderować pliki SVG, więc powinno być całkiem łatwo po prostu umieścić formant WebBrowser w formularzu i ustawić jego właściwość Url na plik SVG. – MusiGenesis

+0

Przykro mi z powodu linków Google - nigdy nie wiadomo, co ludzie mogą lub nie mogą zrobić. Przynajmniej nie korzystałem z www.lmgtfy.com. – MusiGenesis

1

Hav Czy spojrzałeś na zestaw Apis Ab2d? Czy ReaderSvg i ViewerSvg wydają się wykonywać tę pracę? Ale one nie są za darmo!

+0

To jest WPF, a nie WinForm. –

+0

Nadal można używać 'hosta elementów WPF' w WinForm (zobacz * interoperacyjność * WPF \t * w Toolbox) –

2

Jeśli używasz kontrolki przeglądarki dla SVG. Będziesz mieć problem z naruszeniem dostępu z powodu zapobiegania wykonywaniu danych.

Rozwiązaniem jest mieć następujące wiersze w Twoim zdarzeń pokompilacyjnych

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

uzyskać dodatkowe informacje, patrz link http://blogs.msdn.com/b/ed_maurer/archive/2007/12/14/nxcompat-and-the-c-compiler.aspx

Powiązane problemy