示例#1
0
        private void ReadPolylineAttributes(PolylineVObject vObject, SvgPolyline svg)
        {
            ReadBaseRectangleVObjectAttributes(vObject, svg);

            var controlPoints = new PointF[svg.Points.Count];

            for (int i = 0; i < controlPoints.Length; i++)
            {
                var p = svg.Points[i];
                controlPoints[i] = new PointF(p.X, p.Y);
            }
            vObject.ControlPoints = controlPoints;

            vObject.Width = svg.StrokeWidth;

            string color = null;

            foreach (var attr in svg.CustomAttributes)
            {
                if (attr.NamespaceUri == XmlNamespace.AurigmaVectorObjects && attr.LocalName == "color")
                {
                    color = attr.GetValue();
                    break;
                }
            }
            vObject.Color = !string.IsNullOrEmpty(color) ? _serializer.Deserialize <Color>(color) : new RgbColor(svg.Stroke);
        }
示例#2
0
        public PolylineControlPointsProvider(PolylineVObject obj)
        {
            _obj          = obj;
            _obj.Changed += new System.EventHandler(VObjectChangedHandler);

            _controlPointPrototype = new EllipseControlPoint(new System.Drawing.Size(8, 8), new System.Drawing.SolidBrush(System.Drawing.Color.Tomato), new System.Drawing.Pen(System.Drawing.Color.WhiteSmoke));
            _controlPointCursor    = System.Windows.Forms.Cursors.Cross;

            _controlPointsEnabled = true;
            _supportedActions     = new VObjectActionCollection(new IVObjectAction[] { new PolylineVObject.MoveNodeAction(this) });

            RecreateControlPoints();
        }
        protected override IVObject CreateObject()
        {
            PolylineVObject result = null;

            if (_points.Count > 1)
            {
                System.Drawing.PointF[]   points       = (System.Drawing.PointF[])_points.ToArray(typeof(System.Drawing.PointF));
                System.Drawing.RectangleF pointsBounds = VObjectsUtils.GetBoundingRectangle(points);
                if (pointsBounds.Width > 1.0f && pointsBounds.Height > 1.0f)
                {
                    result       = new PolylineVObject(points, _closePath, _fillMode);
                    result.Pen   = base.Pen;
                    result.Brush = base.Brush;
                }
            }

            return(result);
        }
示例#4
0
        private void WritePolylineAttributes(SvgPolyline svg, PolylineVObject vObject)
        {
            WriteBaseRectangleVObjectAttributes(svg, vObject);

            var points = svg.Points;

            foreach (var p in vObject.GetPoints())
            {
                points.Add(p.ToPoint());
            }

            var cm = vObject.GetColorManagement(true);

            svg.Stroke = ColorManagement.GetPreviewColor(cm, vObject.Color);
            svg.CustomAttributes.Add(new SvgVoAttribute("color", _serializer.Serialize(vObject.Color)));

            svg.StrokeWidth = vObject.Width;
            svg.Fill        = RgbColor.Transparent;
        }
 public PolylineVObjectData(PolylineVObject obj)
     : base(obj)
 {
     W = obj.Width;
     C = obj.Color;
 }
示例#6
0
 internal VObject FromSvg(SvgElement svg)
 {
     if (svg is SvgVoGrid)
     {
         var vObject = new GridVObject();
         ReadGridAttributes(vObject, svg as SvgVoGrid);
         return(vObject);
     }
     else if (svg is SvgPolyline)
     {
         var vObject = new PolylineVObject();
         ReadPolylineAttributes(vObject, svg as SvgPolyline);
         return(vObject);
     }
     else if (svg is SvgVoDashLine)
     {
         var vObject = new DashedLineVObject();
         ReadDashLineAttributes(vObject, svg as SvgVoDashLine);
         return(vObject);
     }
     else if (svg is SvgLine)
     {
         var vObject = new LineVObject();
         ReadLineAttributes(vObject, svg as SvgLine);
         return(vObject);
     }
     else if (svg is SvgEllipse)
     {
         var vObject = new EllipseVObject();
         ReadEllipseAttributes(vObject, svg as SvgEllipse);
         return(vObject);
     }
     else if (svg is SvgVoSvg)
     {
         var vObject = new SvgVObject();
         ReadSvgAttributes(vObject, svg as SvgVoSvg);
         return(vObject);
     }
     else if (svg is SvgVoImage)
     {
         var vObject = new ImageVObject();
         ReadImageAttributes(vObject, svg as SvgVoImage);
         return(vObject);
     }
     else if (svg is SvgVoPlainText)
     {
         var vObject = new PlainTextVObject();
         ReadPlainTextAttributes(vObject, svg as SvgVoPlainText);
         return(vObject);
     }
     else if (svg is SvgVoCurvedText)
     {
         var vObject = new CurvedTextVObject();
         ReadCurvedTextAttributes(vObject, svg as SvgVoCurvedText);
         return(vObject);
     }
     else if (svg is SvgVoAutoScaledText)
     {
         var vObject = new AutoScaledTextVObject();
         ReadAutoScaledTextAttributes(vObject, svg as SvgVoAutoScaledText);
         return(vObject);
     }
     else if (svg is SvgVoPathBoundedText)
     {
         var vObject = new PathBoundedTextVObject();
         ReadPathBoundedTextAttributes(vObject, svg as SvgVoPathBoundedText);
         return(vObject);
     }
     else if (svg is SvgVoBoundedText)
     {
         var vObject = new BoundedTextVObject();
         ReadBoundedTextAttributes(vObject, svg as SvgVoBoundedText);
         return(vObject);
     }
     else if (svg is SvgVoPlaceholder)
     {
         var vObject = new PlaceholderVObject();
         ReadPlaceholderAttributes(vObject, (SvgVoPlaceholder)svg);
         return(vObject);
     }
     else if (svg is SvgVoRectangle)
     {
         var vObject = new RectangleVObject();
         ReadRectangleAttributes(vObject, (SvgVoRectangle)svg);
         return(vObject);
     }
     else if (svg is SvgVoShape)
     {
         var vObject = new ShapeVObject();
         ReadShapeAttributes(vObject, (SvgVoShape)svg);
         return(vObject);
     }
     else
     {
         return(null);
     }
 }