首页 > 代码库 > SVG 转 XAML 开源库——SharpVectors

SVG 转 XAML 开源库——SharpVectors

CodePlex 地址

http://sharpvectors.codeplex.com/

这个库的作用是将 SVG 图片转换为适合 WPF 使用的 XAML 代码。

 

源代码文档结构

技术分享

Samples/WpfConverters 项目运行界面

技术分享

 

SVG 转 XAML 关键代码

FileSvgReader 对象的 Read 实现转换,这个方法根据 SVG 文件的路径,读取 SVG 并解析成 DrawingGroup,如果成功解析,则同时根据配置决定保存为 XAML 文件或 ZAML 文件。

 

示例项目

1. 新建 WPF 项目,引入 SharpVectors 提供的 SharpVectors.Converters 和 SharpVectors.Rendering.Wpf。

2. 在 MainWindow.xaml 中放置一个按钮,命名为 BtnConvert。

3. 在 MainWindow.xaml.cs 中,写如下代码:

public partial class MainWindow : Window{    private FileSvgReader _fileSvgReader;    //设置项是初始化 FileSvgReader 对象必须的参数    private WpfDrawingSettings _wpfSettings;    public MainWindow()    {        InitializeComponent();        _wpfSettings = new WpfDrawingSettings();        _wpfSettings.CultureInfo = _wpfSettings.NeutralCultureInfo;        _fileSvgReader = new FileSvgReader(_wpfSettings);        //指定保存为 XAML 文件        _fileSvgReader.SaveXaml = true;    }    private void BtnConverter_OnClick(object sender, RoutedEventArgs e)    {        var svgFile = @"E:\SVG\Background.svg";        var outputDir = new DirectoryInfo(Path.GetDirectoryName(svgFile));        DrawingGroup drawing = _fileSvgReader.Read(svgFile, outputDir);    }}

4. 运行项目,选择“转换”,在 SVG 文件的同目录下就能生成一个 XAML 文件。

SVG 转 XAML 开源库——SharpVectors