C# convert SVG to System.Windows.Controls.Image via Svg
1.Install SVG the third party software tool from nuget;
2.
using System; using System.Collections.Generic; using System.Drawing.Imaging; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Navigation; using System.Windows.Shapes; namespace WpfApp40 { /// <summary> /// Interaction logic for MainWindow.xaml /// </summary> public partial class MainWindow : Window { int width, height; public MainWindow() { InitializeComponent(); this.Loaded += MainWindow_Loaded; } private void MainWindow_Loaded(object sender, RoutedEventArgs e) { width = (int)this.ActualWidth; height = (int)this.ActualHeight; string svgFile = @"../../1.svg"; System.Windows.Controls.Image img = new Image(); img.Source = ConvertSvgToImageSource(svgFile); this.Content = img; } private ImageSource ConvertSvgToImageSource(string svgFile) { BitmapImage bmi = new BitmapImage(); var svgDoc = Svg.SvgDocument.Open(svgFile); var bmp = svgDoc.Draw(width,height); using (MemoryStream ms = new MemoryStream()) { bmp.Save(ms, ImageFormat.Png); ms.Position = 0; bmi.BeginInit(); bmi.StreamSource = ms; bmi.CacheOption = BitmapCacheOption.OnLoad; bmi.EndInit(); if(bmi.CanFreeze) { bmi.Freeze(); } } return bmi; } } }