public override Brush GetBrush(double opacity, SVG svg, SVGRender svgRender, Rect bounds) { byte a = (byte)(255 * opacity / 100); Color c = this.Color; Color newcol = System.Windows.Media.Color.FromArgb(a, c.R, c.G, c.B); return(new SolidColorBrush(newcol)); }
public override Brush GetBrush(double opacity, SVG svg, SVGRender svgRender, Rect bounds) { if (this.brush != null) { return(this.brush); } RadialGradientBrush b = new RadialGradientBrush(); foreach (GradientStop stop in this.Stops) { b.GradientStops.Add(stop); } b.GradientOrigin = new System.Windows.Point(0.5, 0.5); b.Center = new System.Windows.Point(0.5, 0.5); b.RadiusX = 0.5; b.RadiusY = 0.5; if (this.GradientUnits == SVGTags.sUserSpaceOnUse) { b.Center = new System.Windows.Point(this.CX, this.CY); b.GradientOrigin = new System.Windows.Point(this.FX, this.FY); b.RadiusX = this.R; b.RadiusY = this.R; b.MappingMode = BrushMappingMode.Absolute; } else { double scale = 1d / 100d; if (double.IsNaN(this.CX) == false && double.IsNaN(this.CY) == false) { //b.GradientOrigin = new System.Windows.Point(this.CX*scale, this.CY*scale); b.Center = new System.Windows.Point(this.CX /* *scale */, this.CY /* *scale */); } if (double.IsNaN(this.FX) == false && double.IsNaN(this.FY) == false) { b.GradientOrigin = new System.Windows.Point(this.FX * scale, this.FY * scale); } if (double.IsNaN(this.R) == false) { b.RadiusX = this.R /* *scale*/; b.RadiusY = this.R /* *scale*/; } b.MappingMode = BrushMappingMode.RelativeToBoundingBox; } if (this.Transform != null) { b.Transform = this.Transform; } this.brush = b; return(b); }
public DrawingGroup Read(Stream stream) { if (stream == null) { return(new DrawingGroup()); } var svgRender = new SVGRender(new FileSystemLoader()); svgRender.OverrideColor = _overrideColor; return(svgRender.LoadDrawing(stream)); }
public DrawingGroup Read(Uri fileUri) { if (fileUri == null) { return(new DrawingGroup()); } var svgRender = new SVGRender(new FileSystemLoader()); svgRender.OverrideColor = _overrideColor; return(svgRender.LoadDrawing(fileUri)); }
public override Brush GetBrush(double opacity, SVG svg, SVGRender svgRender, Rect bounds) { var db = new DrawingBrush() { Drawing = svgRender.LoadGroup(m_elements, null, false) }; db.TileMode = TileMode.Tile; db.Transform = PatternTransform; db.Viewport = new Rect(X, Y, Width / bounds.Width, Height / bounds.Height); db.ViewportUnits = BrushMappingMode.RelativeToBoundingBox; return(db); }
public override Brush GetBrush(double opacity, SVG svg, SVGRender svgRender, Rect bounds) { if (this.Brush != null) { return(this.Brush); } LinearGradientBrush b = new LinearGradientBrush(); foreach (GradientStop stop in this.Stops) { b.GradientStops.Add(stop); } b.MappingMode = BrushMappingMode.RelativeToBoundingBox; b.StartPoint = new System.Windows.Point(0, 0); b.EndPoint = new System.Windows.Point(1, 0); if (this.GradientUnits == SVGTags.sUserSpaceOnUse) { Transform tr = this.Transform as Transform; if (tr != null) { b.StartPoint = tr.Transform(new System.Windows.Point(this.X1, this.Y1)); b.EndPoint = tr.Transform(new System.Windows.Point(this.X2, this.Y2)); } else { b.StartPoint = new System.Windows.Point(this.X1, this.Y1); b.EndPoint = new System.Windows.Point(this.X2, this.Y2); } this.Transform = null; b.MappingMode = BrushMappingMode.Absolute; } else { this.Normalize(); if (double.IsNaN(this.X1) == false) { b.StartPoint = new System.Windows.Point(this.X1, this.Y1); } if (double.IsNaN(this.X2) == false) { b.EndPoint = new System.Windows.Point(this.X2, this.Y2); } } this.Brush = b; return(b); }
public DrawingGroup Read(string filePath, DirectoryInfo workingDir) { if (string.IsNullOrWhiteSpace(filePath)) { return(new DrawingGroup()); } var svgRender = new SVGRender(new FileSystemLoader()); svgRender.OverrideColor = _overrideColor; svgRender.UseAnimations = true; var drawingGroup = svgRender.LoadDrawing(filePath); string xamlFilePath = IoPath.Combine(workingDir.FullName, IoPath.GetFileNameWithoutExtension(filePath) + ".xaml"); //svgDrawing.RenderDiagrams(drawing); if (drawingGroup != null) { if (_xamlPage != null) { //using (MemoryStream stream = new MemoryStream()) using (FileStream stream = File.Create(xamlFilePath)) { XmlWriterSettings writerSettings = new XmlWriterSettings(); writerSettings.Indent = true; writerSettings.OmitXmlDeclaration = true; writerSettings.Encoding = Encoding.UTF8; using (XmlWriter writer = XmlWriter.Create(stream, writerSettings)) { XamlWriter.Save(drawingGroup, writer); } if (stream.Length > 0) { stream.Position = 0; } _xamlPage.LoadDocument(stream); } } } return(drawingGroup); }
private void CreateImages(int count) { for (int i = 0; i < count; i++) { var svgRender = new SVGRender(); var image = svgRender.LoadDrawing("ImagePerformanceDemo/Resources/timer.svg"); Container.Children.Add(new SVGImage { ImageSource = image, SizeType = SVGImage.eSizeType.SizeToContent, Width = 100, Height = 100, HorizontalAlignment = HorizontalAlignment.Center, VerticalAlignment = VerticalAlignment.Center }); } }
public override Brush GetBrush(double opacity, SVG svg, SVGRender svgRender, Rect bounds) { if (Brush != null) { return(Brush); } foreach (var server in m_pattternPaintServers) { svgRender.SVG.PaintServers.AddServer(server.Key, server.Value); } var db = new DrawingBrush() { Drawing = svgRender.LoadGroup(m_elements, null, false) }; db.TileMode = TileMode.Tile; db.Transform = PatternTransform; db.Viewport = new Rect(X, Y, Width / bounds.Width, Height / bounds.Height); db.ViewportUnits = BrushMappingMode.RelativeToBoundingBox; Brush = db; return(db); }
public override Brush GetBrush(double opacity, SVG svg, SVGRender svgRender, Rect bounds) { return(null); }
public virtual Brush GetBrush(double opacity, SVG svg, SVGRender svgRender, Rect bounds) { return(Brush); }
public abstract Brush GetBrush(double opacity, SVG svg, SVGRender svgRender, Rect bounds);