C# ArcEngine开发 之专题图篇

本文介绍了使用C# ArcEngine开发专题图的过程,包括添加模板导入按钮,实现模板预览窗口,以及通过Treeview展示和应用模板样式。重点讲述了模板预览的实现原理,涉及后台模板库读取和AxPageLayoutControl的使用。
摘要由CSDN通过智能技术生成

C# ArcEngine开发 之专题图篇

提示:上文书链接
C# ArcEngine开发 之地图整饰篇



前言

石崇豪富范丹穷,甘罗运早晚太公。彭祖寿高颜回命短,六个人俱在五行中
上文咱们说到产品大哥又有新需求
“咱们做一个专题图的模块,既能导入模板,也能自定义模板另存,这样就能一键生成这些地图要素”
好吧,满足他

提示:以下是本篇文章正文内容,下面案例可供参考

一、解决思路

在工具栏中添加按钮“模板导入”。

点击弹出模板预览窗口,左侧树形窗口显示可使用的全部模板样式,通过鼠标左击可进行选择,右侧窗口展示当前选中的模板样式。

点击应用,即可应用当前选择的专题图模板

二、实现原理

1.模板预览

左侧放置目录树,System.Windows.Forms.TreeView;
右侧放置页面输出控制(我也不知道这么翻译对不对),总之是,arcgis的AxPageLayoutControl;
通过对后台配置好的模板库地址进行读取,首先将所有模板展示在左侧目录树中,点击相应的模板专题,在右侧AxPageLayoutControl中读取相应模板的mxt文件,预览其样式,点击确定后应用。

2.功能代码

代码如下:

    public partial class FrmTemplate : Form
    {
   
        private string sExtention = ".mxt";
        AxPageLayoutControl pPageLayoutControl;

        public static string filepath = System.AppDomain.CurrentDomain.SetupInformation.ApplicationBase;
        string spath = Application.StartupPath + "\\style\\Symbol";//载入系统模板       
        private string sTemplatePath = string.Empty;

        public FrmTemplate(AxPageLayoutControl axPLC)
        {
   
            InitializeComponent();
            pPageLayoutControl = axPLC;
            InitUI();
        }


        /// <summary>
        /// 向 tlstTemplate中添加各类模板名称
        /// </summary>
        private void InitUI()
        {
   
            try
            {
   
                List<string> plstDirName = null;
                List<string> plstFileName = null;


                string sFileName = string.Empty;
                string sParentName = string.Empty;

                plstDirName = GetChildDirectoryName(spath);//获取指定路径文件夹下子文件夹名称
                for (int i = 0; i < plstDirName.Count; i++)
                {
   
                    sParentName = plstDirName[i];
                    TreeNode pParentNode = new TreeNode();
                    pParentNode.Text = sParentName;
                    pParentNode.ExpandAll();
                    plstFileName = GetFiles(spath + "\\" + sParentName);
                    for (int j = 0; j < plstFileName.Count; j++)
                    {
   
                        sFileName = plstFileName[j
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值