@@ -71,7 +71,7 @@ public enum eSizeType
7171 DependencyProperty . Register ( "UriSource" , typeof ( Uri ) , typeof ( SVGImage ) ,
7272 new FrameworkPropertyMetadata ( null , OnUriSourceChanged ) ) ;
7373
74- public static DependencyProperty SizeTypeProperty = DependencyProperty . Register ( "SizeType" ,
74+ public static readonly DependencyProperty SizeTypeProperty = DependencyProperty . Register ( "SizeType" ,
7575 typeof ( eSizeType ) , typeof ( SVGImage ) , new FrameworkPropertyMetadata ( eSizeType . ContentToSizeNoStretch ,
7676 FrameworkPropertyMetadataOptions . AffectsMeasure | FrameworkPropertyMetadataOptions . AffectsRender ,
7777 new PropertyChangedCallback ( OnSizeTypeChanged ) ) ) ;
@@ -84,7 +84,7 @@ public enum eSizeType
8484 public static readonly DependencyProperty FileSourceProperty = DependencyProperty . Register ( "FileSource" ,
8585 typeof ( string ) , typeof ( SVGImage ) , new PropertyMetadata ( OnFileSourceChanged ) ) ;
8686
87- public static DependencyProperty ImageSourcePoperty = DependencyProperty . Register ( "ImageSource" ,
87+ public static readonly DependencyProperty ImageSourcePoperty = DependencyProperty . Register ( "ImageSource" ,
8888 typeof ( Drawing ) , typeof ( SVGImage ) , new FrameworkPropertyMetadata ( null ,
8989 FrameworkPropertyMetadataOptions . AffectsMeasure | FrameworkPropertyMetadataOptions . AffectsRender ,
9090 new PropertyChangedCallback ( OnImageSourceChanged ) ) ) ;
@@ -247,6 +247,11 @@ public Uri BaseUri
247247 }
248248 }
249249
250+
251+
252+ /// <summary>
253+ /// Rerenders if CustomBrushesPropertyChanged, OverrideStrokeWidthPropertyChanged, OverrideStrokeColorPropertyChanged, OverrideFillColorPropertyChanged, OverrideColorPropertyChanged
254+ /// </summary>
250255 public void ReRenderSvg ( )
251256 {
252257 if ( _render != null )
@@ -364,7 +369,17 @@ protected override void OnInitialized(EventArgs e)
364369 _render . OverrideStrokeWidth = OverrideStrokeWidth ;
365370 _render . UseAnimations = this . UseAnimations ;
366371
367- _loadImage ( _render ) ;
372+ //This is to prevent double rendering because setting CustomBrushes = brushesFromSVG; invokes ReRenderSvg
373+ //Not sure if it has any side effects
374+ if ( ! String . IsNullOrEmpty ( FileSource ) )
375+ {
376+ _render . LoadDrawingWithoutRender ( FileSource ) ;
377+ }
378+ else
379+ {
380+ _loadImage ( _render ) ;
381+ }
382+ //_loadImage(_render);
368383 _loadImage = null ;
369384 var brushesFromSVG = new Dictionary < string , Brush > ( ) ;
370385 foreach ( var server in _render . SVG . PaintServers . GetServers ( ) )
0 commit comments