当前位置: 首页>>代码示例>>C#>>正文


C# Template.CreateShape方法代码示例

本文整理汇总了C#中Dataweb.NShape.Advanced.Template.CreateShape方法的典型用法代码示例。如果您正苦于以下问题:C# Template.CreateShape方法的具体用法?C# Template.CreateShape怎么用?C# Template.CreateShape使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Dataweb.NShape.Advanced.Template的用法示例。


在下文中一共展示了Template.CreateShape方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: CreateDiagram


//.........这里部分代码省略.........
                evenRowLayer = LayerIds.None, oddColLayer = LayerIds.None, evenColLayer = LayerIds.None;
            if (withLayers) {
                const string planarLayerName = "PlanarShapesLayer";
                const string linearLayerName = "LinearShapesLayer";
                const string oddRowsLayerName = "OddRowsLayer";
                const string evenRowsLayerName = "EvenRowsLayer";
                const string oddColsLayerName = "OddColsLayer";
                const string evenColsLayerName = "EvenColsLayer";
                // Create Layers
                Layer planarShapesLayer = new Layer(planarLayerName);
                planarShapesLayer.Title = "Planar Shapes";
                planarShapesLayer.LowerZoomThreshold = 5;
                planarShapesLayer.UpperZoomThreshold = 750;
                diagram.Layers.Add(planarShapesLayer);
                Layer linearShapesLayer = new Layer(linearLayerName);
                linearShapesLayer.Title = "Linear Shapes";
                linearShapesLayer.LowerZoomThreshold = 10;
                linearShapesLayer.UpperZoomThreshold = 500;
                diagram.Layers.Add(linearShapesLayer);
                Layer oddRowsLayer = new Layer(oddRowsLayerName);
                oddRowsLayer.Title = "Odd Rows";
                oddRowsLayer.LowerZoomThreshold = 2;
                oddRowsLayer.UpperZoomThreshold = 1000;
                diagram.Layers.Add(oddRowsLayer);
                Layer evenRowsLayer = new Layer(evenRowsLayerName);
                evenRowsLayer.Title = "Even Rows";
                evenRowsLayer.LowerZoomThreshold = 2;
                evenRowsLayer.UpperZoomThreshold = 1000;
                diagram.Layers.Add(evenRowsLayer);
                Layer oddColsLayer = new Layer(oddColsLayerName);
                oddColsLayer.Title = "Odd Columns";
                oddColsLayer.LowerZoomThreshold = 2;
                oddColsLayer.UpperZoomThreshold = 1000;
                diagram.Layers.Add(oddColsLayer);
                Layer evenColsLayer = new Layer(evenColsLayerName);
                evenColsLayer.Title = "Even Columns";
                evenColsLayer.LowerZoomThreshold = 2;
                evenColsLayer.UpperZoomThreshold = 1000;
                diagram.Layers.Add(evenColsLayer);
                // Assign LayerIds
                planarLayer = diagram.Layers.FindLayer(planarLayerName).Id;
                linearLayer = diagram.Layers.FindLayer(linearLayerName).Id;
                oddRowLayer = diagram.Layers.FindLayer(oddRowsLayerName).Id;
                evenRowLayer = diagram.Layers.FindLayer(evenRowsLayerName).Id;
                oddColLayer = diagram.Layers.FindLayer(oddColsLayerName).Id;
                evenColLayer = diagram.Layers.FindLayer(evenColsLayerName).Id;
            }

            for (int rowIdx = 0; rowIdx < shapesPerColumn; ++rowIdx) {
                LayerIds rowLayer = ((rowIdx + 1) % 2 == 0) ? evenRowLayer : oddRowLayer;
                for (int colIdx = 0; colIdx < shapesPerRow; ++colIdx) {
                    LayerIds colLayer = ((colIdx + 1) % 2 == 0) ? evenColLayer : oddColLayer;
                    int shapePosX = shapeSize + colIdx * (lineLength + shapeSize);
                    int shapePosY = shapeSize + rowIdx * (lineLength + shapeSize);

                    planarShape = planarTemplate.CreateShape();
                    if (planarShape is ICaptionedShape)
                        ((ICaptionedShape)planarShape).SetCaptionText(0, string.Format("{0} / {1}", rowIdx + 1, colIdx + 1));

                    planarShape.MoveTo(shapePosX, shapePosY);
                    if (withModels) {
                        project.Repository.Insert(planarShape.ModelObject);
                        ((GenericModelObject)planarShape.ModelObject).IntegerValue = rowIdx;
                    }

                    diagram.Shapes.Add(planarShape, project.Repository.ObtainNewTopZOrder(diagram));
                    if (withLayers) diagram.AddShapeToLayers(planarShape, planarLayer | rowLayer | colLayer);
                    if (connectShapes) {
                        if (rowIdx > 0) {
                            Shape lineShape = linearTemplate.CreateShape();
                            lineShape.Connect(ControlPointId.FirstVertex, planarShape, topPoint);
                            Debug.Assert(ControlPointId.None != lineShape.IsConnected(ControlPointId.FirstVertex, planarShape));

                            Shape otherShape = diagram.Shapes.FindShape(shapePosX, shapePosY - (shapeSize + lineLength), ControlPointCapabilities.None, 0, null);
                            Debug.Assert(otherShape != null && otherShape != planarShape);
                            lineShape.Connect(ControlPointId.LastVertex, otherShape, bottomPoint);
                            diagram.Shapes.Add(lineShape, project.Repository.ObtainNewBottomZOrder(diagram));
                            if (withLayers) diagram.AddShapeToLayers(lineShape, linearLayer);
                            Debug.Assert(ControlPointId.None != lineShape.IsConnected(ControlPointId.LastVertex, otherShape));
                        }
                        if (colIdx > 0) {
                            Shape lineShape = linearTemplate.CreateShape();
                            lineShape.Connect(1, planarShape, leftPoint);
                            Debug.Assert(ControlPointId.None != lineShape.IsConnected(ControlPointId.FirstVertex, planarShape));

                            Shape otherShape = diagram.Shapes.FindShape(shapePosX - (shapeSize + lineLength), shapePosY, ControlPointCapabilities.None, 0, null);
                            Debug.Assert(otherShape != null && otherShape != planarShape);
                            lineShape.Connect(2, otherShape, rightPoint);

                            diagram.Shapes.Add(lineShape, project.Repository.ObtainNewBottomZOrder(diagram));
                            if (withLayers) diagram.AddShapeToLayers(lineShape, linearLayer);
                            Debug.Assert(ControlPointId.None != lineShape.IsConnected(ControlPointId.LastVertex, otherShape));
                        }
                    }
                }
            }
            diagram.Width = ((shapeSize + lineLength) * shapesPerRow) + lineLength;
            diagram.Height = ((shapeSize + lineLength) * shapesPerColumn) + lineLength;
            project.Repository.InsertAll(diagram);
        }
开发者ID:LudovicT,项目名称:NShape,代码行数:101,代码来源:TestDataGenerator.cs


注:本文中的Dataweb.NShape.Advanced.Template.CreateShape方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。