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 文件。

posted @ 2015-01-28 15:53  fujinxiang  阅读(2630)  评论(1编辑  收藏  举报