첨부 소스 코드는 나눔고딕코딩 폰트를 사용합니다.
728x90
반응형
728x170

TestProject.zip
다운로드

▶ MainForm.cs

using System;
using System.Linq;
using System.IO;
using System.Reflection;

using DevExpress.Diagram.Core;
using DevExpress.XtraBars.Ribbon;

namespace TestProject
{
    /// <summary>
    /// 메인 폼
    /// </summary>
    public partial class MainForm : RibbonForm
    {
        //////////////////////////////////////////////////////////////////////////////////////////////////// Field
        ////////////////////////////////////////////////////////////////////////////////////////// Static
        //////////////////////////////////////////////////////////////////////////////// Private

        #region Field

        /// <summary>
        /// 컨테이너 도형 설명 배열
        /// </summary>
        private static readonly ContainerShapeDescription[] _containerShapeDescriptionArray;

        #endregion

        //////////////////////////////////////////////////////////////////////////////////////////////////// Constructor
        ////////////////////////////////////////////////////////////////////////////////////////// Static

        #region 생성자 - MainForm()

        /// <summary>
        /// 생성자
        /// </summary>
        static MainForm()
        {
            using(Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("TestProject.CustomContainer.xml"))
            {
                _containerShapeDescriptionArray = ShapeDescriptions.LoadDescriptionsFromXml(stream)
                    .OfType<ContainerShapeDescription>().ToArray();
            }

            DiagramContainerGalleryRegistrator.RegisterContainerShapes(_containerShapeDescriptionArray);
        }

        #endregion

        ////////////////////////////////////////////////////////////////////////////////////////// Instance
        //////////////////////////////////////////////////////////////////////////////// Public

        #region 생성자 - MainForm()

        /// <summary>
        /// 생성자
        /// </summary>
        public MainForm()
        {
            InitializeComponent();

            DiagramStencil stencil = DiagramStencil.Create
            (
                "CustomContainers",
                "Custom Containers",
                _containerShapeDescriptionArray
            );

            this.diagramControl.OptionsBehavior.Stencils = new DiagramStencilCollection
            (
                DiagramToolboxRegistrator.Stencils.Concat(new[] { stencil })
            );

            this.diagramControl.SelectedStencils = new StencilCollection("CustomContainers", BasicShapes.StencilId);
        }

        #endregion

        //////////////////////////////////////////////////////////////////////////////////////////////////// Method
        ////////////////////////////////////////////////////////////////////////////////////////// Protected

        #region 로드시 처리하기 - OnLoad(e)

        /// <summary>
        /// 로드시 처리하기
        /// </summary>
        /// <param name="e">이벤트 인자</param>
        protected override void OnLoad(EventArgs e)
        {
            base.OnLoad(e);

            this.diagramControl.InitializeRibbon(this.ribbonControl);
        }

        #endregion
    }
}
728x90
반응형
그리드형(광고전용)

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

[DEVEXPRESS/WINFORM] DiagramControl 클래스 : CustomGetEditableItemProperties 이벤트를 사용해 속성 패널에서 속성 제거하기  (0) 2020.06.07
[DEVEXPRESS/WINFORM] DiagramControl 클래스 : CustomGetEditableItemProperties 이벤트를 사용해 속성 패널에 바인딩 데이터 소스 속성 추가하기  (0) 2020.06.07
[DEVEXPRESS/WINFORM] DiagramControl 클래스 : CustomGetEditableItemProperties 이벤트를 사용해 속성 패널에 파생 도형 속성 추가하기  (0) 2020.06.07
[DEVEXPRESS/WINFORM] DiagramControl 클래스 : CustomGetEditableItemProperties 이벤트를 사용해 속성 패널에 속성 추가하기  (0) 2020.06.07
[DEVEXPRESS/WINFORM] DiagramStencil 클래스 : RegisterTool 메소드를 사용해 스텐실에 커스텀 다이어그램 항목 추가하기  (0) 2020.06.07
[DEVEXPRESS/WINFORM] DiagramControl 클래스 : 파생 도형 생성하기/직렬화 하기  (0) 2020.06.07
[DEVEXPRESS/WINFORM] DiagramControl 클래스 : CustomDrawItem 이벤트를 사용해 다이어그램 항목 내 커스텀 아이콘 그리기  (0) 2020.06.07
[DEVEXPRESS/WINFORM] ImageResourceCache 클래스 : GetImage 메소드를 사용해 DEVEXPRESS 이미지 구하기  (0) 2020.06.07
[DEVEXPRESS/WINFORM] DiagramControl 클래스 : 커스텀 그래프 레이아웃 알고리즘 사용하기  (0) 2020.06.07
[DEVEXPRESS/WINFORM] DiagramControl 클래스 : 연결 포인트를 갖는 커스텀 도형 생성하기  (0) 2020.06.07
Posted by icodebroker

댓글을 달아 주세요