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

TestProject.zip
다운로드

▶ MapItemFactory.cs

using DevExpress.XtraMap;

namespace TestProject
{
    /// <summary>
    /// 맵 항목 팩토리
    /// </summary>
    public class MapItemFactory : DefaultMapItemFactory
    {
        //////////////////////////////////////////////////////////////////////////////////////////////////// Method
        ////////////////////////////////////////////////////////////////////////////////////////// Protected

        #region 항목 초기화하기 - InitializeItem(item, source)

        /// <summary>
        /// 항목 초기화하기
        /// </summary>
        /// <param name="item">항목</param>
        /// <param name="source">소스</param>
        protected override void InitializeItem(MapItem item, object source)
        {
            base.InitializeItem(item, source);

            MapRectangle rectangle = item as MapRectangle;

            if(rectangle != null)
            {
                rectangle.Width  = 1000;
                rectangle.Height = 1000;
            }
        }

        #endregion
    }
}

 

728x90

 

▶ MainForm.cs

using System.Drawing;

using DevExpress.XtraEditors;
using DevExpress.XtraMap;

namespace TestProject
{
    /// <summary>
    /// 메인 폼
    /// </summary>
    public partial class MainForm : XtraForm
    {
        //////////////////////////////////////////////////////////////////////////////////////////////////// Constructor
        ////////////////////////////////////////////////////////////////////////////////////////// Public

        #region 생성자 - MainForm()

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

            this.mapControl.SetMapItemFactory(new MapItemFactory());

            this.listSourceDataAdapter.DataSource = TestList.Instance;

            this.mapControl.DrawMapItem += mapControl_DrawMapItem;
        }

        #endregion

        //////////////////////////////////////////////////////////////////////////////////////////////////// Method
        ////////////////////////////////////////////////////////////////////////////////////////// Private

        #region 맵 컨트롤 맵 항목 그리기 - mapControl_DrawMapItem(sender, e)

        /// <summary>
        /// 맵 컨트롤 맵 항목 그리기
        /// </summary>
        /// <param name="sender">이벤트 발생자</param>
        /// <param name="e">이벤트 인자</param>
        private void mapControl_DrawMapItem(object sender, DrawMapItemEventArgs e)
        {
            Color color1 = (Color)e.Item.Attributes["Tag"].Value;
            Color color2 = Color.FromArgb(255 - color1.R, 255 - color1.G, 255 - color1.B);

            e.Fill        = e.IsHighlighted ? color2 : color1;
            e.Stroke      = e.IsHighlighted ? color1 : color2;
            e.StrokeWidth = e.IsHighlighted ? 5 : 2;
        }

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

댓글을 달아 주세요