Exemple #1
0
        /// <summary>
        /// 单击更多符号按钮,弹出上下文菜单列出其它符号菜单
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnMoreSymbols_Click(object sender, EventArgs e)
        {
            if (this._contextMenuMoreSymbolInitiated == false)
            {
                CheckArcGIS10Install checkArcGisInstall = new CheckArcGIS10Install();
                string sInstall = checkArcGisInstall.GetDesktopPath();
                string path     = sInstall + "\\Styles";
                //取得菜单项数量
                string[]            styleNames            = System.IO.Directory.GetFiles(path, "*.ServerStyle");
                ToolStripMenuItem[] symbolContextMenuItem = new ToolStripMenuItem[styleNames.Length + 1];
                //循环添加其它符号菜单项到菜单
                for (int i = 0; i < styleNames.Length; i++)
                {
                    symbolContextMenuItem[i] = new ToolStripMenuItem();
                    symbolContextMenuItem[i].CheckOnClick = true;
                    symbolContextMenuItem[i].Text         = System.IO.Path.GetFileNameWithoutExtension(styleNames[i]);
                    if (symbolContextMenuItem[i].Text == "ESRI")
                    {
                        symbolContextMenuItem[i].Checked = true;
                    }
                    symbolContextMenuItem[i].Name = styleNames[i];
                }
                //添加“更多符号”菜单项到菜单最后一项
                symbolContextMenuItem[styleNames.Length]      = new ToolStripMenuItem();
                symbolContextMenuItem[styleNames.Length].Text = "添加符号";
                symbolContextMenuItem[styleNames.Length].Name = "AddMoreSymbol";

                //添加所有的菜单项到菜单
                this.contextMenuStripMoreSymbol.Items.AddRange(symbolContextMenuItem);
                this._contextMenuMoreSymbolInitiated = true;
            }
            //显示菜单
            this.contextMenuStripMoreSymbol.Show(this.btnMoreSymbols.Location);
        }
Exemple #2
0
        /// <summary>
        /// 根据图层的几何类型,加载符号并确定显示哪些控件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void SymbolSelectorForm_Load(object sender, EventArgs e)
        {
            //取得ArcGIS安装路径,载入ESRI.ServerStyle文件到SymbologyControl
            CheckArcGIS10Install checkArcGisInstall = new CheckArcGIS10Install();
            string sInstall = checkArcGisInstall.GetDesktopPath();

            this.axSymbologyControl1.MousePointer = esriControlsMousePointer.esriPointerDefault;
            this.axSymbologyControl1.LoadStyleFile(sInstall + "\\Styles\\ESRI.ServerStyle");

            //确定图层的类型(点线面),设置好SymbologyControl的StyleClass,设置好各控件的可见性(visible)
            IGeoFeatureLayer pGeoFeatureLayer = (IGeoFeatureLayer)_pLayer;

            switch (((IFeatureLayer)_pLayer).FeatureClass.ShapeType)
            {
            case ESRI.ArcGIS.Geometry.esriGeometryType.esriGeometryPoint:
                this.SetFeatureClassStyle(esriSymbologyStyleClass.esriStyleClassMarkerSymbols);
                this.lblAngle.Visible        = true;
                this.nudAngle.Visible        = true;
                this.lblSize.Visible         = true;
                this.nudSize.Visible         = true;
                this.lblWidth.Visible        = false;
                this.nudWidth.Visible        = false;
                this.lblOutlineColor.Visible = false;
                this.btnOutlineColor.Visible = false;
                break;

            case ESRI.ArcGIS.Geometry.esriGeometryType.esriGeometryPolyline:
                this.SetFeatureClassStyle(esriSymbologyStyleClass.esriStyleClassLineSymbols);
                this.lblAngle.Visible        = false;
                this.nudAngle.Visible        = false;
                this.lblSize.Visible         = false;
                this.nudSize.Visible         = false;
                this.lblWidth.Visible        = true;
                this.nudWidth.Visible        = true;
                this.lblOutlineColor.Visible = false;
                this.btnOutlineColor.Visible = false;
                break;

            case ESRI.ArcGIS.Geometry.esriGeometryType.esriGeometryPolygon:
                this.SetFeatureClassStyle(esriSymbologyStyleClass.esriStyleClassFillSymbols);
                this.lblAngle.Visible        = false;
                this.nudAngle.Visible        = false;
                this.lblSize.Visible         = false;
                this.nudSize.Visible         = false;
                this.lblWidth.Visible        = true;
                this.nudWidth.Visible        = true;
                this.lblOutlineColor.Visible = true;
                this.btnOutlineColor.Visible = true;
                break;

            case ESRI.ArcGIS.Geometry.esriGeometryType.esriGeometryMultiPatch:
                this.SetFeatureClassStyle(esriSymbologyStyleClass.esriStyleClassFillSymbols);
                this.lblAngle.Visible        = false;
                this.nudAngle.Visible        = false;
                this.lblSize.Visible         = false;
                this.nudSize.Visible         = false;
                this.lblWidth.Visible        = true;
                this.nudWidth.Visible        = true;
                this.lblOutlineColor.Visible = true;
                this.btnOutlineColor.Visible = true;
                break;

            default:
                this.Close();
                break;
            }
        }