コード例 #1
0
        public static Polyline DrawParallelArrow(Polyline Shape, Object Tag, Dataweb.NShape.WinFormsUI.Display Display, Dataweb.NShape.Project Project, ILineStyle LineStyle, Layer Layer)
        {
            Polyline parallel = (Polyline)Project.ShapeTypes["Polyline"].CreateInstance();

            parallel.StartCapStyle      = Project.Design.CapStyles.OpenArrow;
            parallel.LineStyle          = LineStyle;
            parallel.Tag                = Tag;
            parallel.SecurityDomainName = 'B';

            Point p0 = Shape.GetControlPointPosition(ControlPointId.FirstVertex);
            Point p1 = Shape.GetControlPointPosition(ControlPointId.LastVertex);

            Point n0 = Shape.CalcNormalVector(p0);
            Point n1 = Shape.CalcNormalVector(p1);

            parallel.MoveControlPointTo(ControlPointId.FirstVertex, n0.X, n0.Y, ResizeModifiers.None);
            parallel.MoveControlPointTo(ControlPointId.LastVertex, n1.X, n1.Y, ResizeModifiers.None);

            Display.Diagram.Shapes.Add(parallel);

            Display.Diagram.AddShapeToLayers(parallel, Layer.Id);

            Project.Repository.Insert((Shape)parallel, Display.Diagram);

            return(parallel);
        }