첨부 실행 코드는 나눔고딕코딩 폰트를 사용합니다.
유용한 소스 코드가 있으면 icodebroker@naver.com으로 보내주시면 감사합니다.
블로그 자료는 자유롭게 사용하세요.

■ ShapeDescription 클래스 : CreateSvgShape 정적 메소드를 SVG 도형 생성하기

------------------------------------------------------------------------------------------------------------------------


TestProject.zip


MainForm.cs

 

 

using System.Drawing;

using System.IO;

 

using DevExpress.Diagram.Core;

using DevExpress.Utils;

using DevExpress.XtraDiagram;

using DevExpress.XtraEditors;

 

namespace TestProject

{

    /// <summary>

    /// 메인 폼

    /// </summary>

    public partial class MainForm : XtraForm

    {

        //////////////////////////////////////////////////////////////////////////////////////////////////// Constructor

        ////////////////////////////////////////////////////////////////////////////////////////// Public

 

        #region 생성자 - MainForm()

 

        /// <summary>

        /// 생성자

        /// </summary>

        public MainForm()

        {

            InitializeComponent();

 

            DiagramStencil diagramStencil = new DiagramStencil("SVGShape", "SVGShape");

 

            for(int i = 1; i < 6; i++)

            {

                string filePath = $"IMAGE\\chart{i}.svg";

 

                using(FileStream stream = File.OpenRead(filePath))

                {

                    ShapeDescription shapeDescription = ShapeDescription.CreateSvgShape

                    (

                        $"chart{i}",

                        $"chart{i}",

                        stream,

                        false,

                        (size) => new[] { new System.Windows.Point(size.Width / 2, size.Height / 2) },

                        "#ff0000",

                        "#000000"

                    );

 

                    diagramStencil.RegisterShape(shapeDescription);

                }

            }

 

            for(int i = 0; i < 5; i++)

            {

                int x = GetColumnIndex(5, i);

                int y = GetRowIndex(5, i);

 

                DiagramShape shape = new DiagramShape();

 

                shape.Size     = new SizeF(100f, 100f);

                shape.Position = new PointFloat(x * 150f + 100f, y * 150f + 100f);

                shape.Shape    = diagramStencil.GetShape($"chart{i + 1}");

 

                this.diagramControl.Items.Add(shape);

            }

 

            this.diagramControl.FitToDrawing();

        }

 

        #endregion

 

        //////////////////////////////////////////////////////////////////////////////////////////////////// Method

        ////////////////////////////////////////////////////////////////////////////////////////// Private

 

        #region 행 인덱스 구하기 - GetRowIndex(columnCount, sequenceIndex)

 

        /// <summary>

        /// 행 인덱스 구하기

        /// </summary>

        /// <param name="columnCount">컬럼 수</param>

        /// <param name="sequenceIndex">순번 인덱스</param>

        /// <returns>행 인덱스</returns>

        private int GetRowIndex(int columnCount, int sequenceIndex)

        {

            return sequenceIndex / columnCount;

        }

 

        #endregion

        #region 컬럼 인덱스 구하기 - GetColumnIndex(columnCount, sequenceIndex)

 

        /// <summary>

        /// 컬럼 인덱스 구하기

        /// </summary>

        /// <param name="columnCount">컬럼 수</param>

        /// <param name="sequenceIndex">순번 인덱스</param>

        /// <returns>컬럼 인덱스</returns>

        private int GetColumnIndex(int columnCount, int sequenceIndex)

        {

            return sequenceIndex % columnCount;

        }

 

        #endregion

    }

}

 

------------------------------------------------------------------------------------------------------------------------

'DevExpress > WinForm' 카테고리의 다른 글

[DEVEXPRESS/WINFORM] GridOptionsClipboard 클래스 : CopyColumnHeaders 속성을 사용해 클립보드 복사시 컬럼 헤더 포함하기  (0) 2020.06.03
[DEVEXPRESS/WINFORM] DiagramCommandsBase 클래스 : RegisterHotKeys 메소드를 사용해 단축 키(shortcut) 등록하기  (0) 2020.06.03
[DEVEXPRESS/WINFORM] DiagramStencil 클래스 : 숨긴 스텐실 생성하기  (0) 2020.06.02
[DEVEXPRESS/WINFORM] DiagramStencil 클래스 : UnregisterShape 메소드를 사용해 도형 등록 취소하기  (0) 2020.06.02
[DEVEXPRESS/WINFORM] DiagramOptionsBehavior 클래스 : Stencils 속성을 사용해 특정 스텐실을 제외하고 모든 스텐실 제거하기  (0) 2020.06.02
[DEVEXPRESS/WINFORM] ShapeDescription 클래스 : CreateSvgShape 정적 메소드를 SVG 도형 생성하기  (0) 2020.06.02
[DEVEXPRESS/WINFORM] DiagramImage 클래스 : Image 속성을 사용해 이미지 도형 사용하기  (0) 2020.06.02
[DEVEXPRESS/WINFORM] DiagramConnector 클래스 : BeginArrow/EndArrow 속성을 사용해 화살표 스타일 설정하기  (0) 2020.06.02
[DEVEXPRESS/WINFORM] DiagramShape 클래스 : Shape 속성을 사용해 도형 종류 설정하기  (0) 2020.06.02
[DEVEXPRESS/WINFORM] DiagramControl 클래스 : SVG 도형 사용하기  (0) 2020.06.01
[DEVEXPRESS/WINFORM] DiagramToolboxRegistrator 클래스 : RegisterStencil/UnregisterStencil 정적 메소드를 사용해 스텐실 등록하기/등록 취소하기  (0) 2020.06.01
Posted by 사용자 icodebroker
TAG

댓글을 달아 주세요