public void SetLineCap(LineCap startCap, LineCap endCap, System.Drawing.Drawing2D.DashCap dashCap)
        {
            if (this.immutable)
            {
                throw new ArgumentException(System.Drawing.SR.GetString("CantChangeImmutableObjects", new object[] { "Pen" }));
            }
            int status = SafeNativeMethods.Gdip.GdipSetPenLineCap197819(new HandleRef(this, this.NativePen), (int)startCap, (int)endCap, (int)dashCap);

            if (status != 0)
            {
                throw SafeNativeMethods.Gdip.StatusException(status);
            }
        }
示例#2
0
        public static DrawingImage GetImage(sdd.DashCap val)
        {
            double height = 1;
            double width  = 2;

            PenLineCap dashCap = PenLineCap.Flat;

            switch (val)
            {
            default:
            case sdd.DashCap.Flat:
                dashCap = PenLineCap.Flat;
                break;

            case sdd.DashCap.Round:
                dashCap = PenLineCap.Round;
                break;

            case sdd.DashCap.Triangle:
                dashCap = PenLineCap.Triangle;
                break;
            }

            //
            // Create the Geometry to draw.
            //
            var drawingGroup    = new DrawingGroup();
            var geometryDrawing = new GeometryDrawing()
            {
                Geometry = new RectangleGeometry(new Rect(0, 0, width, height))
            };

            geometryDrawing.Pen = new Pen(Brushes.Transparent, 0);
            drawingGroup.Children.Add(geometryDrawing);

            geometryDrawing = new GeometryDrawing()
            {
                Geometry = new LineGeometry(new Point(0, height / 2), new Point(width, height / 2))
            };
            geometryDrawing.Pen = new Pen(Brushes.Black, height / 5)
            {
                DashCap = dashCap, DashStyle = DashStyles.Dash
            };
            drawingGroup.Children.Add(geometryDrawing);

            var geometryImage = new DrawingImage(drawingGroup);

            // Freeze the DrawingImage for performance benefits.
            geometryImage.Freeze();
            return(geometryImage);
        }
示例#3
0
        public static SharpDX.Direct2D1.CapStyle ToCapStyle(System.Drawing.Drawing2D.DashCap dashCap)
        {
            switch (dashCap)
            {
            case System.Drawing.Drawing2D.DashCap.Triangle:
                return(SharpDX.Direct2D1.CapStyle.Triangle);

            case System.Drawing.Drawing2D.DashCap.Flat:
                return(SharpDX.Direct2D1.CapStyle.Flat);

            case System.Drawing.Drawing2D.DashCap.Round:
                return(SharpDX.Direct2D1.CapStyle.Round);
            }
            return(SharpDX.Direct2D1.CapStyle.Flat);
        }