Skip to content

Commit 3b67bd3

Browse files
authored
Merge pull request #3 from dotnetprojects/master
Updating to Master
2 parents 381934d + 6271731 commit 3b67bd3

File tree

6 files changed

+38
-5
lines changed

6 files changed

+38
-5
lines changed

Samples/Example/Example.csproj

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,13 +29,17 @@
2929
<DefineConstants Condition="$(TargetFramework.StartsWith('net48'))">$(DefineConstants);DOTNET48;NETFULL</DefineConstants>
3030
<DefineConstants Condition="$(TargetFramework.StartsWith('netcore'))">$(DefineConstants);NETCORE</DefineConstants>
3131
</PropertyGroup>
32+
<ItemGroup>
33+
<None Remove="Images\rect.svg" />
34+
</ItemGroup>
3235
<ItemGroup>
3336
<ProjectReference Include="..\..\Source\SVGImage\DotNetProjects.SVGImage.csproj" />
3437
</ItemGroup>
3538
<ItemGroup>
3639
<Resource Include="Images\brush.svg" />
3740
<Resource Include="Images\error.svg" />
3841
<Resource Include="Images\example radgrad01.svg" />
42+
<Resource Include="Images\rect.svg" />
3943
<Resource Include="Images\test_3.svg" />
4044
<Resource Include="Images\tombigel_green_router.svg" />
4145
<Resource Include="Images\Soccer_ball_animated.svg" />

Samples/Example/Images/rect.svg

Lines changed: 5 additions & 0 deletions
Loading

Samples/Example/MainWindow.xaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,7 @@
107107
<svg1:SVGImage Source="/Example;component/Images/3.svg" RenderTransformOrigin="0.5,0.5" VerticalContentAlignment="Center" HorizontalContentAlignment="Center" Margin="3" />
108108
<svg1:SVGImage Source="/Example;component/Images/4.svg" RenderTransformOrigin="0.5,0.5" VerticalContentAlignment="Center" HorizontalContentAlignment="Center" Margin="3" />
109109
<svg1:SVGImage Source="/Example;component/Images/5.svg" RenderTransformOrigin="0.5,0.5" VerticalContentAlignment="Center" HorizontalContentAlignment="Center" Margin="3" />
110+
<svg1:SVGImage Source="/Example;component/Images/rect.svg" RenderTransformOrigin="0.5,0.5" VerticalContentAlignment="Center" HorizontalContentAlignment="Center" Margin="3" OverrideColor="Black" x:Name="OverrideColorTest" MouseDoubleClick="SVGImage_MouseDoubleClick" />
110111
</UniformGrid>
111112
</TabItem>
112113
<TabItem Header="Animation/Clipping" Height="40" Width="245" x:Name="tabAnimation" Style="{DynamicResource TabItem.Style.TopTabStripPlacement}">

Samples/Example/MainWindow.xaml.cs

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -139,5 +139,15 @@ private void EnsureIcons()
139139
}
140140
#endif
141141
}
142+
143+
private void SVGImage_MouseDoubleClick(object sender, System.Windows.Input.MouseButtonEventArgs e)
144+
{
145+
var rnd = new Random().Next(0, 3);
146+
147+
OverrideColorTest.OverrideColor =
148+
rnd == 0 ? System.Windows.Media.Colors.White :
149+
rnd == 1 ? System.Windows.Media.Colors.Magenta :
150+
System.Windows.Media.Colors.Black;
151+
}
142152
}
143153
}

Source/SVGImage/SVG/SVGImage.cs

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -88,8 +88,11 @@ public enum eSizeType
8888
typeof(double?), typeof(SVGImage), new FrameworkPropertyMetadata(default,
8989
FrameworkPropertyMetadataOptions.AffectsRender, OverrideStrokeWidthPropertyChanged));
9090

91-
public static readonly DependencyProperty OverrideColorProperty = DependencyProperty.Register("OverrideColor",
92-
typeof(Color?), typeof(SVGImage), new PropertyMetadata(null));
91+
public static readonly DependencyProperty OverrideColorProperty =
92+
DependencyProperty.Register("OverrideColor",
93+
typeof(Color?),
94+
typeof(SVGImage),
95+
new FrameworkPropertyMetadata(default, FrameworkPropertyMetadataOptions.AffectsRender, OverrideColorPropertyChanged));
9396

9497
public static readonly DependencyProperty CustomBrushesProperty = DependencyProperty.Register(nameof(CustomBrushes),
9598
typeof(Dictionary<string, Brush>), typeof(SVGImage), new FrameworkPropertyMetadata(default,
@@ -725,8 +728,8 @@ static void OnSizeTypeChanged(DependencyObject d, DependencyPropertyChangedEvent
725728

726729
static void OnSourceChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
727730
{
728-
StreamResourceInfo resource = Application.GetResourceStream(new Uri(e.NewValue.ToString(), UriKind.Relative));
729-
((SVGImage)d).SetImage(resource.Stream);
731+
StreamResourceInfo resource = e.NewValue != null ? Application.GetResourceStream(new Uri(e.NewValue.ToString(), UriKind.Relative)) : null;
732+
((SVGImage)d).SetImage(resource != null ? resource.Stream : null);
730733
}
731734

732735
static void OnFileSourceChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
@@ -739,6 +742,16 @@ static void OnImageSourceChanged(DependencyObject d, DependencyPropertyChangedEv
739742
((SVGImage)d).SetImage(e.NewValue as Drawing);
740743
}
741744

745+
private static void OverrideColorPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
746+
{
747+
if (d is SVGImage svgImage && e.NewValue is Color newColor && svgImage._render != null)
748+
{
749+
svgImage._render.OverrideColor = newColor;
750+
svgImage.InvalidateVisual();
751+
svgImage.ReRenderSvg();
752+
}
753+
}
754+
742755
private static void OverrideStrokeWidthPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
743756
{
744757
if (d is SVGImage svgImage && e.NewValue is double newStrokeWidth && svgImage._render != null)

Source/SVGImage/SVG/SVGRender.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -132,7 +132,7 @@ private GeometryDrawing NewDrawingItem(Shape shape, Geometry geometry)
132132
item.Pen.DashCap = PenLineCap.Flat;
133133
DashStyle ds = new DashStyle();
134134
double scale = 1 / stroke.Width;
135-
foreach (int dash in stroke.StrokeArray) ds.Dashes.Add(dash * scale);
135+
foreach (var dash in stroke.StrokeArray) ds.Dashes.Add(dash * scale);
136136
item.Pen.DashStyle = ds;
137137
}
138138
switch (stroke.LineCap)

0 commit comments

Comments
 (0)