diff --git a/SvgXF/SvgXF/Icon.cs b/SvgXF/SvgXF/Icon.cs index edbc2b2..71dbed7 100644 --- a/SvgXF/SvgXF/Icon.cs +++ b/SvgXF/SvgXF/Icon.cs @@ -30,6 +30,19 @@ public string ResourceId #endregion + #region Color + + public static readonly BindableProperty ColorProperty = BindableProperty.Create( + nameof(Color), typeof(Color), typeof(SVGIcon),Color.Black, propertyChanged: RedrawCanvas); + + public Color Color + { + get => (Color)GetValue(ColorProperty); + set => SetValue(ColorProperty, value); + } + + #endregion + #endregion #region Constructor @@ -78,7 +91,15 @@ private void CanvasViewOnPaintSurface(object sender, SKPaintSurfaceEventArgs arg canvas.Scale(ratio); canvas.Translate(-bounds.MidX, -bounds.MidY); - canvas.DrawPicture(svg.Picture); + var paint = new SKPaint() + { + ColorFilter = SKColorFilter.CreateBlendMode( + this.Color.ToSKColor(), + SKBlendMode.SrcIn + ) + }; + + canvas.DrawPicture(svg.Picture,paint); } }