SharpVectorGraphics Project SharpVectorGraphics (http://sourceforge.net/projects/svgdomcsharp) is one of the most popular .NET Open Source projects. SVG# is a .NET XML DOM-based SVG implementation and is well supported, very compliant with SVG standards, (http://www.w3.org/Graphics/SVG/Test/20021115/matrixl) and easy to use. It is implemented entirely in C#. One of the project's administrators is Niklas Gustavsson, co-author of SVG Unleashed , the best SVG book out there. The biggest feature of SVG# is the SVG-to-GDI+ renderer. Based on this renderer, the project offers an SVGPictureBox control that is featured on their SVGViewer. Figure 12-2 shows the SVGViewer application, which happens to be an example application included with SVG# distribution. [View full size image] Under the Test drop-down menu, you can use this application to test SVG# against the W3C compatibility tests. As you can see, the SVG Picture box is very easy to use. SVG# uses many other Open Source projects within their project. They use NAnt to build the project, NUnit to test the code, NDoc for their documentation, and SharpZipLib (http://www.icsharpcode.net/OpenSource/SharpZipLib/Default.aspx) for compressing and decompressing SVG files.The goal of this example is to allow users to go both ways: to create a program that allows an SVG file to be displayed onscreen. SVG# already has this functionality. The trick is that this example wants to allow the user to modify the onscreen drawing and save it back as SVG. Thus, System.Drawing.Drawing2D graphics are not enough. The classes in this namespace allow for drawing things onscreen, such as a rectangle, but do not allow the user to change the drawing. This example should let the user change the fill, line width, colors, etc. of the onscreen drawing. |