• Как работать с SVG в WPF?

    @f_kirill Автор вопроса
    Воспользовался SharpVectors .
    Во ViewModel сохраняю в файл svg.
    В xaml разметке использую компонент SvgViewbox.
    Чтобы забиндить путь в Source добавил AttachedProperty
    public class SvgViewboxAttachedProperties : DependencyObject
        {
            public static string GetSource(DependencyObject obj)
            {
                return (string)obj.GetValue(SourceProperty);
            }
    
            public static void SetSource(DependencyObject obj, string value)
            {
                obj.SetValue(SourceProperty, value);
            }
    
            private static void OnSourceChanged(DependencyObject obj, DependencyPropertyChangedEventArgs e)
            {
                var svgControl = obj as SvgViewbox;
                if (svgControl != null)
                {
                    svgControl.Source = new System.Uri((string) e.NewValue);
                }
            }
    
            public static readonly DependencyProperty SourceProperty =
                DependencyProperty.RegisterAttached("Source",
                    typeof(string), typeof(SvgViewboxAttachedProperties),
                    new PropertyMetadata(null, OnSourceChanged));
        }


    В итоге в разметке выглядит так

    <svgc:SvgViewbox  common:SvgViewboxAttachedProperties.Source="{Binding IconPath}" />
    Ответ написан
    Комментировать