Example #1
0
        /// <summary>
        /// 单击更多符号按钮的上下文菜单后,将新符号加入到符号选择控件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void contextMenuStripMoreSymbol_ItemClicked(object sender, ToolStripItemClickedEventArgs e)
        {
            var toolStripMenuItem = (ToolStripMenuItem)e.ClickedItem;

            if (toolStripMenuItem.Name == StrAddMoreSymbol)//如果单击的是“添加更多符号”
            {
                var openfileDialog = new OpenFileDialog();
                if (openfileDialog.ShowDialog() == DialogResult.OK) //弹出打开文件对话框
                {
                    SymbologyControl.LoadStyleFile(openfileDialog.FileName);
                }
            }
            else//如果是其它选项
            {
                if (toolStripMenuItem.Checked == false)
                {
                    SymbologyControl.LoadStyleFile(toolStripMenuItem.Name);
                }
                else
                {
                    SymbologyControl.RemoveFile(toolStripMenuItem.Name);
                }
            }
            SymbologyControl.Refresh();
        }
Example #2
0
        /// <summary>
        /// 根据图层的几何类型,加载符号并确定显示哪些控件
        /// </summary>
        private void LoadStyle()
        {
            SymbologyControl.LoadStyleFile(GetStylesFilePath());                                   //加载ESRI.ServerStyle文件到SymbologyControl
            var eType = GetSymbologyStyleClassType(((IFeatureLayer)Layer).FeatureClass.ShapeType); //根据图层的几何类型,获取需要加载的符号类别

            SetFeatureClassStyle(eType);                                                           //设置好SymbologyControl的StyleClass
            SetControlsVisible(eType);                                                             //设置好各控件的可见性(visible)
        }
Example #3
0
        /// <summary>
        /// 根据符号样式类别初始化SymbologyControl,如果图层已有符号,则把符号作为SymbologyControl的第一个符号并选中
        /// </summary>
        /// <param name="eSymbologyStyleClass">符号样式类别枚举(点/线/面/标注/文本/指北针/比例尺等样式类别)</param>
        private void SetFeatureClassStyle(esriSymbologyStyleClass eSymbologyStyleClass)
        {
            SymbologyControl.StyleClass = eSymbologyStyleClass;//获取指定类别的符号样式库,即当前是点/线/面/标注/文本/指北针/比例尺等符号库的哪一个符号库
            var symbologyStyleClass = SymbologyControl.GetStyleClass(eSymbologyStyleClass);

            if (LegendClass != null)
            {
                StyleGalleryItem = new ServerStyleGalleryItem {
                    Name = "当前符号", Item = LegendClass.Symbol
                };
                symbologyStyleClass.AddItem(StyleGalleryItem, 0);
            }
            symbologyStyleClass.SelectItem(0);
        }