void CreateLinearGradient(SvgElement element, SvgRendererContext context) { var linearGradient = element as SvgLinearGradientElement; if (linearGradient != null) { var color1 = default(Color); var color2 = default(Color); LinearGradientBrush gradient; if (linearGradient.Children.Count == 2) { var stop1 = linearGradient.Children[0] as SvgStopElement; var stop2 = linearGradient.Children[1] as SvgStopElement; if (stop1 != null && stop2 != null) { color1 = ParseStopColor(stop1); color2 = ParseStopColor(stop2); } } else { Brush referenceGradient; LinearGradientBrush referenceLinearGradient; var href = new SvgXRef(linearGradient).Href; if (href != null && context.Gradients.TryGetValue(href, out referenceGradient) && (referenceLinearGradient = referenceGradient as LinearGradientBrush) != null) { color1 = referenceLinearGradient.LinearColors[0]; color2 = referenceLinearGradient.LinearColors[1]; } } var gradientTransform = ParseTransform(linearGradient, null, "gradientTransform"); var points = new[] { ParsePoint(linearGradient, "x1", "y1").GetValueOrDefault(PointF.Empty), ParsePoint(linearGradient, "x2", "y2").GetValueOrDefault(new PointF(1, 1)) }; if (gradientTransform != null) { gradientTransform.TransformPoints(points); } gradient = new LinearGradientBrush(points[0], points[1], color1, color2); context.Gradients.Add(new SvgUriReference(linearGradient).Href, gradient); disposableResources.Add(gradient); } }
public SvgImageElement(SvgXRef xref) => XRef = xref;
public SvgUseElement(SvgLength x, SvgLength y, SvgXRef xref) { XRef = xref; X = x; Y = y; }
public SvgUseElement(SvgXRef xref) { XRef = xref; }
public SvgImageElement(SvgLength x, SvgLength y, SvgXRef xref) { this.XRef = xref; this.X = x; this.Y = y; }
public SvgImageElement(SvgXRef xref) { this.XRef = xref; }
public SvgUseElement(SvgXRef xref) { this.XRef = xref; }