コード例 #1
0
        protected virtual void MoveTextBelowShape(NShape shape)
        {
            NTextBlock textBlock = shape.GetTextBlock();

            textBlock.Padding    = new NMargins(0, 5, 0, 0);
            textBlock.ResizeMode = ENTextBlockResizeMode.TextSize;
            textBlock.SetFx(NTextBlock.PinYProperty, new NShapeHeightFactorFx(1.0));
            textBlock.LocPinY = 0;
        }
コード例 #2
0
        protected override void MoveTextBelowShape(NShape shape)
        {
            if (shape.ShapeType == ENShapeType.Shape2D)
            {
                base.MoveTextBelowShape(shape);
                return;
            }

            // if the shape is 1D put the text block on the left part of the shape and rotate it on 90 degrees.
            NTextBlock textBlock = shape.GetTextBlock();

            textBlock.Padding    = new NMargins(5, 0, 0, 0);
            textBlock.ResizeMode = ENTextBlockResizeMode.TextSize;
            textBlock.PinX       = shape.BeginX;
            textBlock.SetFx(NTextBlock.PinYProperty, new NShapeHeightFactorFx(0));
            textBlock.LocPinY = 0;
            textBlock.Angle   = new NAngle(90);
        }
コード例 #3
0
        protected override void InitDiagram()
        {
            base.InitDiagram();

            NDrawing drawing    = m_DrawingDocument.Content;
            NPage    activePage = drawing.ActivePage;

            // Hide the grid and the ports
            drawing.ScreenVisibility.ShowGrid  = false;
            drawing.ScreenVisibility.ShowPorts = false;

            // Create a shape factory
            NBasicShapeFactory basicShapeFactory = new NBasicShapeFactory();

            basicShapeFactory.DefaultSize = new NSize(100, 100);

            // Create the Name shape
            NShape nameShape = basicShapeFactory.CreateShape(ENBasicShape.Rectangle);

            nameShape.Width = 150;
            nameShape.PinX  = activePage.Width / 2;
            nameShape.PinY  = 100;

            NParagraph paragraph = new NParagraph();

            paragraph.Inlines.Add(new NFieldInline(new NMailMergePredefinedFieldValue(ENMailMergeDataField.FirstName)));
            paragraph.Inlines.Add(new NTextInline(" "));
            paragraph.Inlines.Add(new NFieldInline(new NMailMergePredefinedFieldValue(ENMailMergeDataField.LastName)));

            nameShape.GetTextBlock().Content.Blocks.Clear();
            nameShape.GetTextBlock().Content.Blocks.Add(paragraph);
            activePage.Items.Add(nameShape);

            // Create the City shape
            NShape cityShape = basicShapeFactory.CreateShape(ENBasicShape.SixPointStar);

            cityShape.PinX = nameShape.PinX - 150;
            cityShape.PinY = nameShape.PinY + 200;

            paragraph = new NParagraph();
            paragraph.Inlines.Add(new NFieldInline(new NMailMergePredefinedFieldValue(ENMailMergeDataField.City)));

            cityShape.GetTextBlock().Content.Blocks.Clear();
            cityShape.GetTextBlock().Content.Blocks.Add(paragraph);
            activePage.Items.Add(cityShape);

            // Create the Birth Date shape
            NShape birthDateShape = basicShapeFactory.CreateShape(ENBasicShape.Circle);

            birthDateShape.PinX = nameShape.PinX + 150;
            birthDateShape.PinY = cityShape.PinY;

            paragraph = new NParagraph();
            paragraph.Inlines.Add(new NFieldInline(new NMailMergeSourceFieldValue("BirthDate")));

            birthDateShape.GetTextBlock().Content.Blocks.Clear();
            birthDateShape.GetTextBlock().Content.Blocks.Add(paragraph);
            activePage.Items.Add(birthDateShape);

            // Connect the shapes
            NRoutableConnector connector = new NRoutableConnector();

            connector.Text = "City";
            connector.TextBlock.BackgroundFill = new NColorFill(NColor.White);
            connector.GlueBeginToNearestPort(nameShape);
            connector.GlueEndToNearestPort(cityShape);
            activePage.Items.Add(connector);

            connector      = new NRoutableConnector();
            connector.Text = "Birth Date";
            connector.TextBlock.BackgroundFill = new NColorFill(NColor.White);
            connector.GlueBeginToNearestPort(nameShape);
            connector.GlueEndToNearestPort(birthDateShape);
            activePage.Items.Add(connector);

            // Load a mail merge data source from resource
            Stream stream = NResources.Instance.GetResourceStream("RSTR_Employees_csv");
            NMailMergeDataSource dataSource = NDataSourceFormat.Csv.LoadFromStream(stream, new NDataSourceLoadSettings(null, null, true));

            // Set some field mappings
            NMailMergeFieldMap fieldMap = new NMailMergeFieldMap();

            fieldMap.Set(ENMailMergeDataField.CourtesyTitle, "TitleOfCourtesy");
            fieldMap.Set(ENMailMergeDataField.FirstName, "FirstName");
            fieldMap.Set(ENMailMergeDataField.LastName, "LastName");
            fieldMap.Set(ENMailMergeDataField.City, "City");

            // Configure the drawing's mail merge
            drawing.MailMerge.DataSource = dataSource;
        }