Пример #1
0
 /// <summary>
 /// Copy base style from BaseStyle source.
 /// </summary>
 /// <param name="source">The BaseStyle source object.</param>
 public ArrowStyle(BaseStyle source)
 {
     Stroke = ArgbColor.Create
         (source.Stroke.A,
          source.Stroke.R,
          source.Stroke.G,
          source.Stroke.B);
     Fill = ArgbColor.Create
         (source.Fill.A,
          source.Fill.R,
          source.Fill.G,
          source.Fill.B);
     Thickness = source.Thickness;
     LineCap = source.LineCap;
     Dashes = source.Dashes != null ? source.Dashes : default(string);
     DashOffset = source.DashOffset;
 }
Пример #2
0
 /// <summary>
 /// 
 /// </summary>
 /// <param name="style"></param>
 /// <param name="thickness"></param>
 /// <returns></returns>
 private static Pen CreatePen(BaseStyle style, double thickness)
 {
     var brush = CreateBrush(style.Stroke);
     var pen = new Pen(brush, thickness);
     switch (style.LineCap)
     {
         case LineCap.Flat:
             pen.StartLineCap = PenLineCap.Flat;
             pen.EndLineCap = PenLineCap.Flat;
             pen.DashCap = PenLineCap.Flat;
             break;
         case LineCap.Square:
             pen.StartLineCap = PenLineCap.Square;
             pen.EndLineCap = PenLineCap.Square;
             pen.DashCap = PenLineCap.Square;
             break;
         case LineCap.Round:
             pen.StartLineCap = PenLineCap.Round;
             pen.EndLineCap = PenLineCap.Round;
             pen.DashCap = PenLineCap.Round;
             break;
     }
     pen.DashStyle = new DashStyle(
         ShapeStyle.DashesToDoubleArray(style.Dashes),
         style.DashOffset);
     pen.DashStyle.Offset = style.DashOffset;
     pen.Freeze();
     return pen;
 }
Пример #3
0
 /// <summary>
 /// Creates a new instance of the ArrowStyle class.
 /// </summary>
 /// <param name="name">The arrow style name.</param>
 /// <param name="source">The BaseStyle source object.</param>
 /// <param name="arrowType">The arrow type.</param>
 /// <param name="isStroked">The arow shape stroke flag.</param>
 /// <param name="isFilled">The arow shape fill flag.</param>
 /// <param name="radiusX">The arrow X axis radius.</param>
 /// <param name="radiusY">The arrow Y axis radius.</param>
 /// <returns>The new instance of the ArrowStyle class.</returns>
 public static ArrowStyle Create(
     string name,
     BaseStyle source,
     ArrowType arrowType = ArrowType.None,
     bool isStroked = true,
     bool isFilled = false,
     double radiusX = 5.0,
     double radiusY = 5.0)
 {
     return new ArrowStyle(source)
     {
         Name = name,
         ArrowType = arrowType,
         IsStroked = isStroked,
         IsFilled = isFilled,
         RadiusX = radiusX,
         RadiusY = radiusY
     };
 }
Пример #4
0
 /// <summary>
 /// 
 /// </summary>
 /// <param name="style"></param>
 /// <param name="scale"></param>
 /// <returns></returns>
 private Pen ToPen(BaseStyle style, Func<double, float> scale)
 {
     var pen = new Pen(ToColor(style.Stroke), (float)(style.Thickness));
     switch (style.LineCap)
     {
         case Kaliber3D.Render.LineCap.Flat:
             pen.StartCap = System.Drawing.Drawing2D.LineCap.Flat;
             pen.EndCap = System.Drawing.Drawing2D.LineCap.Flat;
             pen.DashCap = System.Drawing.Drawing2D.DashCap.Flat;
             break;
         case Kaliber3D.Render.LineCap.Square:
             pen.StartCap = System.Drawing.Drawing2D.LineCap.Square;
             pen.EndCap = System.Drawing.Drawing2D.LineCap.Square;
             pen.DashCap = System.Drawing.Drawing2D.DashCap.Flat;
             break;
         case Kaliber3D.Render.LineCap.Round:
             pen.StartCap = System.Drawing.Drawing2D.LineCap.Round;
             pen.EndCap = System.Drawing.Drawing2D.LineCap.Round;
             pen.DashCap = System.Drawing.Drawing2D.DashCap.Round;
             break;
     }
     if (style.Dashes != null)
     {
         // TODO: Convert to correct dash values.
         pen.DashPattern = ShapeStyle.DashesToFloatArray(style.Dashes);
     }
     pen.DashOffset = (float)style.DashOffset;
     return pen;
 }