Example #1
0
        //添加GLISTBOX项
        private void addListBoxItem(ISymbol symbol)
        {
            IStyleGallery        styleGallery;
            IStyleGalleryItem    styleGalleryItem;
            IStyleGalleryStorage styleGalleryStorge;

            styleGalleryItem          = new ServerStyleGalleryItemClass();
            styleGalleryItem.Name     = this.txtSymbolName.Text;
            styleGalleryItem.Category = "default";
            object objSymbol = symbol;

            styleGalleryItem.Item = objSymbol;

            styleGallery                  = new ServerStyleGalleryClass();
            styleGalleryStorge            = styleGallery as IStyleGalleryStorage;
            styleGalleryStorge.TargetFile = fileName;

            //IStyleGalleryClass styleGalleryClass = styleGallery.get_Class(CurrentStyleGalleryClassIndex);
            ISymbologyStyleClass pSymbolClass = psymbologyStyleClass;

            pSymbolClass.AddItem(styleGalleryItem, 0);
            pSymbolClass.SelectItem(0);

            stdole.IPictureDisp pPicture = pSymbolClass.PreviewItem(styleGalleryItem, 140, 20);
            Image     image = Image.FromHbitmap(new System.IntPtr(pPicture.Handle));
            GridPanel panel = supergrid.PrimaryGrid;
            GridRow   row   = new GridRow(image);

            panel.Rows.Add(row);
            psymbologyStyleClass.RemoveItem(0);
            imagelist.Add(image);
        }
Example #2
0
        //added by chulili
        //函数功能:获取符号库中的符号
        //输入参数:符号库全路径 符号类别  符号名
        //输出参数:符号
        //代码来源:借鉴同事代码
        private static ISymbol GetSymbol(string stylefileFullname, string styleClassName, string sSymbolName)
        {
            ISymbol               pSymbol       = null;
            IStyleGallery         pStyleGallery = new ServerStyleGalleryClass();
            IStyleGalleryStorage  pStyleGalleryStorage;
            IEnumStyleGalleryItem pEnumStyleGalleryItem = new EnumServerStyleGalleryItemClass();

            pStyleGalleryStorage = pStyleGallery as IStyleGalleryStorage;
            pStyleGalleryStorage.AddFile(stylefileFullname);

            pEnumStyleGalleryItem = pStyleGallery.get_Items(styleClassName, stylefileFullname, "");
            pEnumStyleGalleryItem.Reset();
            IStyleGalleryItem pEnumItem;

            pEnumItem = pEnumStyleGalleryItem.Next();
            while (pEnumItem != null)
            {
                if (pEnumItem.Name == sSymbolName)
                {
                    pSymbol = pEnumItem.Item as ISymbol;

                    break;
                }
                pEnumItem = pEnumStyleGalleryItem.Next();
            }
            System.Runtime.InteropServices.Marshal.ReleaseComObject(pEnumStyleGalleryItem);
            return(pSymbol);
        }
Example #3
0
        /// <summary>
        ///     获得符号
        /// </summary>
        /// <params name="sServerStylePath"></params>
        /// <params name="sGalleryClassName"></params>
        /// <params name="symbolName"></params>
        /// <returns></returns>
        public static ILineSymbol GetSymbol(string sServerStylePath, string sGalleryClassName, string symbolName)
        {
            IStyleGallery pStyleGallery        = new ServerStyleGalleryClass();
            var           pStyleGalleryStorage = (IStyleGalleryStorage)pStyleGallery;
            ILineSymbol   lineSymbol           = new SimpleLineSymbolClass();

            //查找到符号
            pStyleGalleryStorage.TargetFile = sServerStylePath; //输入符号的地址
            var pEnumStyleGalleryItem = pStyleGallery.Items["Line Symbols", sServerStylePath, sGalleryClassName];

            //sGalleryClassName为输入符号库的名称

            pEnumStyleGalleryItem.Reset();
            var pStyleGalleryItem = pEnumStyleGalleryItem.Next();

            while (pStyleGalleryItem != null)
            {
                if (pStyleGalleryItem.Name == symbolName)
                {
                    lineSymbol = (ILineSymbol)pStyleGalleryItem.Item;
                    Marshal.ReleaseComObject(pEnumStyleGalleryItem);
                    break;
                }
                pStyleGalleryItem = pEnumStyleGalleryItem.Next();
            }
            //定义符号的大小,已经定义好了是size=30
            //lineSymbol.Width = 2;

            return(lineSymbol);
        }
Example #4
0
        // 从符号
        public static ISymbol FetchSymbol(string name)
        {
            string               strStartPath         = System.Windows.Forms.Application.StartupPath;
            IStyleGallery        pStyleGallery        = new ServerStyleGalleryClass();
            IStyleGalleryStorage pStyleGalleryStorage = pStyleGallery as IStyleGalleryStorage;

            pStyleGalleryStorage.AddFile(strStartPath + "\\mlb.ServerStyle");

            IEnumStyleGalleryItem pEnumStyleGalleryItem = pStyleGallery.get_Items("Marker Symbols", strStartPath + "\\mlb.ServerStyle", null);

            ISymbol pSymbol = null;

            pEnumStyleGalleryItem.Reset();
            IStyleGalleryItem pStyleGalleryItem = pEnumStyleGalleryItem.Next();


            while (pStyleGalleryItem != null)
            {
                if (pStyleGalleryItem.Name == name)
                {
                    //获取符号
                    pSymbol = pStyleGalleryItem.Item as ISymbol;
                    System.Runtime.InteropServices.Marshal.ReleaseComObject(pEnumStyleGalleryItem);
                    break;
                }

                pStyleGalleryItem = pEnumStyleGalleryItem.Next();
            }

            return(pSymbol);
        }
Example #5
0
        private void styleToolStripMenuItem_Click(object sender, EventArgs e)
        {
            IStyleGallery        pStyleGlry    = new ServerStyleGalleryClass();
            IStyleGalleryStorage pStyleStorage = pStyleGlry as IStyleGalleryStorage;

            IRgbColor pRgbColor = new RgbColorClass();

            pRgbColor.Red   = 255;
            pRgbColor.Green = 1;
            pRgbColor.Blue  = 2;

            IStyleGalleryItem pStyleItem = new ServerStyleGalleryItemClass();

            pStyleItem.Name     = "Red";
            pStyleItem.Category = "Default";
            pStyleItem.Item     = pRgbColor;

            string pOldFile = pStyleStorage.TargetFile;

            pStyleStorage.TargetFile = @"E:\test.style";
            pStyleGlry.AddItem(pStyleItem);
            pStyleStorage.TargetFile = pOldFile;
            IColor color = pRgbColor as IColor;

            this.Text = color.RGB.ToString();
        }
        private void DrawColorRamp()
        {
            string               strDefaultStyleFileName = string.Format("{0}\\CNUStyles\\ESRI.ServerStyle", Application.StartupPath);
            IStyleGallery        styleGallery            = new ServerStyleGalleryClass();
            IStyleGalleryItem    styleGalleryItem        = new ServerStyleGalleryItemClass();
            IStyleGalleryStorage styleGalleryStorage     = styleGallery as IStyleGalleryStorage;

            styleGalleryStorage.AddFile(strDefaultStyleFileName);
            IEnumStyleGalleryItem enumStyleGalleryItem = styleGallery.get_Items("Color Ramps", strDefaultStyleFileName, "");

            enumStyleGalleryItem.Reset();
            styleGalleryItem = enumStyleGalleryItem.Next();
            while (styleGalleryItem != null)
            {
                m_ColorRamp = (IColorRamp)styleGalleryItem.Item;
                EnumStyleItem.Add(m_ColorRamp);
                //新建m_FillSymbol和m_colorRamp
                m_FillSymbol = new GradientFillSymbol();
                m_FillSymbol.GradientPercentage = 1;
                m_FillSymbol.IntervalCount      = 255;
                m_FillSymbol.GradientAngle      = 0;
                m_FillSymbol.ColorRamp          = m_ColorRamp;
                pictureBox1.Image = SymbolToBitmap(m_FillSymbol, 0, pictureBox1.Width, pictureBox1.Height);
                pictureBox2.Image = SymbolToBitmap(m_FillSymbol, 0, pictureBox1.Width, pictureBox1.Height);
                imageList1.Images.Add(m_ColorRamp.Name, pictureBox1.Image);
                imageList2.Images.Add(m_ColorRamp.Name, pictureBox1.Image);
                colorComboBox.Items.Add(pictureBox1.Image);
                colorComboBox1.Items.Add(pictureBox2.Image);
                styleGalleryItem = enumStyleGalleryItem.Next();
            }
        }
Example #7
0
        private void DrawColorRamp()
        {
            string               sInstall            = ESRI.ArcGIS.RuntimeManager.ActiveRuntime.Path;
            string               styleFilePath       = sInstall + "\\Styles\\ESRI.ServerStyle";
            IStyleGallery        styleGallery        = new ServerStyleGalleryClass();
            IStyleGalleryItem    styleGalleryItem    = null;
            IStyleGalleryStorage styleGalleryStorage = styleGallery as IStyleGalleryStorage;

            styleGalleryStorage.AddFile(styleFilePath);

            IEnumStyleGalleryItem enumStyleGalleryItem = styleGallery.get_Items("Color Ramps", styleFilePath, "");

            enumStyleGalleryItem.Reset();

            styleGalleryItem = enumStyleGalleryItem.Next();

            while (styleGalleryItem != null)
            {
                m_ColorRamp = (IColorRamp)styleGalleryItem.Item;
                EnumStyleItem.Add(m_ColorRamp);
                m_FillSymbol = new GradientFillSymbol();
                m_FillSymbol.GradientAngle = 0;
                m_FillSymbol.ColorRamp     = m_ColorRamp;
                pictureBox1.Image          = SymbolToBitmap(m_FillSymbol, 0, pictureBox1.Width, pictureBox1.Height);
                imageList1.Images.Add(pictureBox1.Image);
                comboBoxColor.Items.Add(pictureBox1.Image);
                styleGalleryItem = enumStyleGalleryItem.Next();
            }

            System.Runtime.InteropServices.Marshal.ReleaseComObject(enumStyleGalleryItem);
        }
Example #8
0
        public void Style(string name, List <ComboBoxSym> cmblist)
        {
            IStyleGallery         pStyleGallery = new ServerStyleGalleryClass();
            IStyleGalleryStorage  pStyleStorage;
            IEnumStyleGalleryItem enumStyleGalleryItem;
            IStyleGalleryItem     styleItem;


            pStyleStorage = pStyleGallery as IStyleGalleryStorage;
            //默认地址,也可以自己定义
            string stylePath = Application.StartupPath + "\\ESRI.ServerStyle";

            pStyleStorage.AddFile(stylePath);
            switch (name)
            {
            case "Color Ramps":
                IStyleGalleryClass pStyleGalleryClass = new ColorRampStyleGalleryClassClass();
                enumStyleGalleryItem = pStyleGallery.get_Items("Color Ramps", "ESRI.ServerStyle", "");
                enumStyleGalleryItem.Reset();
                styleItem = enumStyleGalleryItem.Next();
                for (int i = 1; i < 55; i++)
                //while(styleItem!=null)
                {
                    pListRamp.Add((IColorRamp)styleItem.Item);
                    Bitmap bitmap = PreviewSymbol(pStyleGalleryClass, styleItem.Item, cmblist[0].Width, cmblist[0].Height);
                    cmblist[0].Items.Add(bitmap);
                    cmblist[1].Items.Add(bitmap);
                    styleItem = enumStyleGalleryItem.Next();
                }
                break;

            case "Colors":
                IStyleGalleryClass pStyleGalleryClass1 = new ColorStyleGalleryClassClass();
                enumStyleGalleryItem = pStyleGallery.get_Items("Colors", "ESRI.ServerStyle", "");
                enumStyleGalleryItem.Reset();
                styleItem = enumStyleGalleryItem.Next();
                for (int i = 1; i < 55; i++)
                //while (styleItem != null)
                {
                    pListColor.Add((IColor)styleItem.Item);
                    Bitmap bitmap = PreviewSymbol(pStyleGalleryClass1, styleItem.Item, cmblist[0].Width, cmblist[0].Height);
                    cmblist[0].Items.Add(bitmap);
                    cmblist[1].Items.Add(bitmap);
                    styleItem = enumStyleGalleryItem.Next();
                }
                break;
            }
            pStyleStorage.RemoveFile(stylePath);
        }
Example #9
0
        public void Style(string name, List<ComboBoxSym> cmblist)
        {
            IStyleGallery pStyleGallery;
            IStyleGalleryStorage pStyleStorage;
            IEnumStyleGalleryItem enumStyleGalleryItem;
            IStyleGalleryItem styleItem;

            pStyleGallery = new ServerStyleGalleryClass();
            pStyleStorage = pStyleGallery as IStyleGalleryStorage;
            //默认地址,也可以自己定义
            string stylePath = Application.StartupPath + "\\ESRI.ServerStyle";
            pStyleStorage.AddFile(stylePath);
            switch (name)
            {
                case "Color Ramps":
                    IStyleGalleryClass pStyleGalleryClass = new ColorRampStyleGalleryClassClass();
                    enumStyleGalleryItem = pStyleGallery.get_Items("Color Ramps", "ESRI.ServerStyle", "");
                    enumStyleGalleryItem.Reset();
                    styleItem = enumStyleGalleryItem.Next();
                    for (int i = 1; i <55; i++)
                    //while(styleItem!=null)
                    {
                        pListRamp.Add((IColorRamp)styleItem.Item);
                        Bitmap bitmap = PreviewSymbol(pStyleGalleryClass, styleItem.Item, cmblist[0].Width, cmblist[0].Height);
                        cmblist[0].Items.Add(bitmap);
                        cmblist[1].Items.Add(bitmap);
                        styleItem = enumStyleGalleryItem.Next();
                    }
                    break;
                case "Colors":
                    IStyleGalleryClass pStyleGalleryClass1 = new ColorStyleGalleryClassClass();
                    enumStyleGalleryItem = pStyleGallery.get_Items("Colors", "ESRI.ServerStyle", "");
                    enumStyleGalleryItem.Reset();
                    styleItem = enumStyleGalleryItem.Next();
                    for (int i = 1; i < 55; i++)
                    //while (styleItem != null)
                    {
                        pListColor.Add((IColor)styleItem.Item);
                        Bitmap bitmap = PreviewSymbol(pStyleGalleryClass1, styleItem.Item, cmblist[0].Width, cmblist[0].Height);
                        cmblist[0].Items.Add(bitmap);
                        cmblist[1].Items.Add(bitmap);
                        styleItem = enumStyleGalleryItem.Next();

                    }
                    break;

            }
            pStyleStorage.RemoveFile(stylePath);
        }
Example #10
0
        ///<summary>
        ///获取符号库中符号
        ///</summary>
        ///<param name="sServerStylePath">符号库全路径名称</param>
        ///<param name="sGalleryClassName">GalleryClass名称</param>
        ///<param name="symbolName">符号名称</param>
        ///<returns>符号</returns>
        private ISymbol GetSymbol(string sServerStylePath, string sGalleryClassName, string symbolName)
        {
            try
            {
                //ServerStyleGallery对象
                IStyleGallery        pStyleGaller         = new ServerStyleGalleryClass();
                IStyleGalleryStorage pStyleGalleryStorage = pStyleGaller as IStyleGalleryStorage;

                IEnumStyleGalleryItem pEnumSyleGalleryItem = null;
                IStyleGalleryItem     pStyleGallerItem     = null;
                IStyleGalleryClass    pStyleGalleryClass   = null;
                //使用IStyleGalleryStorage接口的AddFile方法加载ServerStyle文件
                pStyleGalleryStorage.AddFile(sServerStylePath);
                //遍历ServerGallery中的Class
                for (int i = 0; i < pStyleGaller.ClassCount; i++)
                {
                    pStyleGalleryClass = pStyleGaller.get_Class(i);
                    if (pStyleGalleryClass.Name != sGalleryClassName)
                    {
                        continue;
                    }
                    //获取EnumStyleGalleryItem对象
                    pEnumSyleGalleryItem = pStyleGaller.get_Items(sGalleryClassName, sServerStylePath, "");
                    pEnumSyleGalleryItem.Reset();
                    //遍历pEnumSyleGalleryItem
                    pStyleGallerItem = pEnumSyleGalleryItem.Next();
                    while (pStyleGallerItem != null)
                    {
                        if (pStyleGallerItem.Name == symbolName)
                        {
                            //获取符号
                            ISymbol pSymbol = pStyleGallerItem.Item as ISymbol;
                            System.Runtime.InteropServices.Marshal.ReleaseComObject(pEnumSyleGalleryItem);
                            System.Runtime.InteropServices.Marshal.ReleaseComObject(pStyleGalleryClass);
                            return(pSymbol);
                        }
                        pStyleGallerItem = pEnumSyleGalleryItem.Next();
                    }
                }
                System.Runtime.InteropServices.Marshal.ReleaseComObject(pEnumSyleGalleryItem);
                System.Runtime.InteropServices.Marshal.ReleaseComObject(pStyleGalleryClass);
                return(null);
            }
            catch (Exception Err)
            {
                MessageBox.Show(Err.Message, "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
                return(null);
            }
        }
Example #11
0
        static IStyleGallery GetStyleGallery(string stylePath)
        {
            IStyleGallery styleGallery = null;
            String        tempPath     = stylePath.ToLower();

            if (tempPath.Contains(".serverstyle"))
            {
                styleGallery = new ServerStyleGalleryClass();
            }
            else
            {
                styleGallery = new StyleGalleryClass();
            }
            return(styleGallery);
        }
        private void demo2(string CurrentStyleFile, string CurrentStyleGalleryClass)
        {
            IStyleGallery        pStyleGallery = new ServerStyleGalleryClass();
            IStyleGalleryStorage pStyleGalleryStorage;

            pStyleGalleryStorage = pStyleGallery as IStyleGalleryStorage;
            //增加符号文件
            pStyleGalleryStorage.AddFile(CurrentStyleFile);
            //根据当前符号的类别和文件得到符号的枚举循环
            //符号类别包括Fill Symbol,Line Symbol等
            IEnumStyleGalleryItem mEnumStyleItem;

            mEnumStyleItem = pStyleGallery.get_Items(CurrentStyleGalleryClass, CurrentStyleFile, "");
            //得到符号文件类别的各个条目,增加到一个Combox中
            IEnumBSTR pEnumBSTR = pStyleGallery.get_Categories(CurrentStyleGalleryClass);

            pEnumBSTR.Reset();
            string Category = "";

            Category = pEnumBSTR.Next();
            while (Category != null)
            {
                //cbxCategory.Items.Add(Category);
                Category = pEnumBSTR.Next();
            }
            //得到各个符号并转化为图片
            mEnumStyleItem.Reset();
            IStyleGalleryItem mStyleItem = mEnumStyleItem.Next();
            int ImageIndex = 0;
            IStyleGalleryClass mStyleClass = new FillSymbolStyleGalleryClassClass();

            while (mStyleItem != null)
            {
                //调用另一个类的方法将符号转化为图片
                Bitmap bmpB = StyleGalleryItemToBmp(32, 32, mStyleClass, mStyleItem);
                Bitmap bmpS = StyleGalleryItemToBmp(16, 16, mStyleClass, mStyleItem);
                Largeimage.Images.Add(bmpB);
                Smallimage.Images.Add(bmpS);
                ListViewItem lvItem = new ListViewItem(new string[] { mStyleItem.Name, mStyleItem.ID.ToString(), mStyleItem.Category }, ImageIndex);
                this.lvRendererFields.Items.Add(lvItem);
                mStyleItem = mEnumStyleItem.Next();
                ImageIndex++;
            }
            //必须采用此方式进行释放,第二次才能正常读取
            System.Runtime.InteropServices.Marshal.ReleaseComObject(mEnumStyleItem);
        }
Example #13
0
        /// <summary>
        /// 获取指定种类,指定符号id的符号
        /// </summary>
        /// <param name="sGallery">符号种类(e.g.填充颜色)</param>
        /// <param name="id">符号id</param>
        /// <returns>符号</returns>
        public static ISymbol GetStyleSymbol(string sGallery, int id)
        {
            try
            {
                IStyleGallery        pStyleGallery        = new ServerStyleGalleryClass();
                IStyleGalleryStorage pStyleGalleryStorage = pStyleGallery as IStyleGalleryStorage;

                for (int i = pStyleGalleryStorage.FileCount - 1; i >= 0; i--)
                {
                    pStyleGalleryStorage.RemoveFile(pStyleGalleryStorage.get_File(i));
                }

                pStyleGalleryStorage.AddFile(_STYLEFILE);
                IEnumStyleGalleryItem pEnumStyleItem = pStyleGallery.get_Items(sGallery, _STYLEFILE, "");
                pEnumStyleItem.Reset();
                IStyleGalleryItem  mStyleItem  = pEnumStyleItem.Next();
                IStyleGalleryClass mStyleClass = null;
                for (int i = 0; i < pStyleGallery.ClassCount; i++)
                {
                    mStyleClass = pStyleGallery.get_Class(i);
                    string str = mStyleClass.Name;
                    if (str == sGallery)
                    {
                        break;
                    }
                }

                ISymbol result = null;
                while (mStyleItem != null)
                {
                    if (mStyleItem.ID == id)
                    {
                        result = mStyleItem.Item as ISymbol;
                        break;
                    }
                    mStyleItem = pEnumStyleItem.Next();
                }
                System.Runtime.InteropServices.Marshal.ReleaseComObject(pEnumStyleItem);
                return(result);
            }
            catch
            {
                return(null);
            }
        }
Example #14
0
        //添加GLISTBOX项
        private void addListBoxItem(ISymbol symbol)
        {
            IStyleGallery        styleGallery;
            IStyleGalleryItem    styleGalleryItem;
            IStyleGalleryStorage styleGalleryStorge;

            styleGalleryItem          = new ServerStyleGalleryItemClass();
            styleGalleryItem.Name     = this.txtSymbolName.Text;
            styleGalleryItem.Category = "default";
            object objSymbol = symbol;

            styleGalleryItem.Item = objSymbol;

            styleGallery                  = new ServerStyleGalleryClass();
            styleGalleryStorge            = styleGallery as IStyleGalleryStorage;
            styleGalleryStorge.TargetFile = fileName;

            ISymbologyStyleClass pSymbolClass = psymbologyStyleClass;

            pSymbolClass.AddItem(styleGalleryItem, 0);
            pSymbolClass.SelectItem(0);
            Image image = null;

            if (symbol is IMarker3DSymbol)
            {
                IMarker3DSymbol mar3dsym = symbol as IMarker3DSymbol;
                stdole.IPicture pic      = mar3dsym.Thumbnail;
                image = Image.FromHbitmap(new System.IntPtr(pic.Handle));
            }
            else
            {
                stdole.IPictureDisp pPicture = pSymbolClass.PreviewItem(styleGalleryItem, 140, 15);
                image = Image.FromHbitmap(new System.IntPtr(pPicture.Handle));
            }

            GridPanel panel = supergrid.PrimaryGrid;
            GridRow   row   = new GridRow(image);

            panel.Rows.Add(row);
            psymbologyStyleClass.RemoveItem(0);
            imagelist.Add(image);
            Symbollist.Add(symbol);
        }
Example #15
0
        /// <summary>
        /// 读取ServerStyle中的文件并显示
        /// </summary>
        /// <param name="StyleGalleryClass">符号文件的种类</param>
        /// <param name="CategoryClass">符号的种类</param>
        /// <param name="cbxCategory">符号文件的种类的容器</param>
        /// <param name="lvSymbol">符号位图的容器</param>
        public static void ReadServerStyle(string StyleGalleryClass, string CategoryClass, ComboBox cbxCategory, ListView lvSymbol)
        {
            lvSymbol.Items.Clear();
            lvSymbol.LargeImageList.Images.Clear();
            IStyleGallery        pStyleGallery        = new ServerStyleGalleryClass();
            IStyleGalleryStorage pStyleGalleryStorage = pStyleGallery as IStyleGalleryStorage;

            // 增加符号文件
            //pStyleGalleryStorage.TargetFile = _STYLEFILE;
            for (int i = pStyleGalleryStorage.FileCount - 1; i >= 0; i--)
            {
                pStyleGalleryStorage.RemoveFile(pStyleGalleryStorage.get_File(i));
            }
            pStyleGalleryStorage.AddFile(_STYLEFILE);
            // 根据当前符号的类别和文件得到符号的枚举循环子,符号类别包括Fill Symbol,Line Symbol等
            IEnumStyleGalleryItem pEnumStyleItem = pStyleGallery.get_Items(StyleGalleryClass, _STYLEFILE, "");

            // 得到符号文件类别的各个条目,增加到一个Combox中
            if (cbxCategory != null)
            {
                cbxCategory.Items.Clear();
                cbxCategory.Items.Add(_ALLSYMBOLS);
                IEnumBSTR pEnumBSTR = pStyleGallery.get_Categories(StyleGalleryClass);
                pEnumBSTR.Reset();
                string Category = "";
                Category = pEnumBSTR.Next();
                while (Category != null)
                {
                    cbxCategory.Items.Add(Category);
                    Category = pEnumBSTR.Next();
                }
            }

            pEnumStyleItem.Reset();
            IStyleGalleryItem  mStyleItem  = pEnumStyleItem.Next();
            IStyleGalleryClass mStyleClass = null;

            for (int i = 0; i < pStyleGallery.ClassCount; i++)
            {
                mStyleClass = pStyleGallery.get_Class(i);
                string str = mStyleClass.Name;
                if (str == StyleGalleryClass)
                {
                    break;
                }
            }

            // 得到各个符号并转化为图片
            int       ImageIndex = 0;
            ImageList Largeimage = lvSymbol.LargeImageList;

            if (CategoryClass == "" || CategoryClass == _ALLSYMBOLS)
            {
                while (mStyleItem != null)
                {
                    // 调用另一个类的方法将符号转化为图片
                    Bitmap bmpB = StyleGalleryItemToBmp(32, 32, mStyleClass, mStyleItem);
                    Largeimage.Images.Add(bmpB);
                    ListViewItem lvItem = new ListViewItem(new string[] { mStyleItem.Name, mStyleItem.ID.ToString(), mStyleItem.Category }, ImageIndex);
                    lvSymbol.Items.Add(lvItem);
                    ImageIndex++;
                    mStyleItem = pEnumStyleItem.Next();
                }
            }
            else
            {
                while (mStyleItem != null)
                {
                    if (CategoryClass == mStyleItem.Category)
                    {
                        // 调用另一个类的方法将符号转化为图片
                        Bitmap bmpB = StyleGalleryItemToBmp(32, 32, mStyleClass, mStyleItem);
                        Largeimage.Images.Add(bmpB);
                        ListViewItem lvItem = new ListViewItem(new string[] { mStyleItem.Name, mStyleItem.ID.ToString(), mStyleItem.Category }, ImageIndex);
                        lvSymbol.Items.Add(lvItem);
                        ImageIndex++;
                    }
                    mStyleItem = pEnumStyleItem.Next();
                }
            }
            // 必须采用此方式进行释放,第二次才能正常读取
            System.Runtime.InteropServices.Marshal.ReleaseComObject(pEnumStyleItem);
        }
Example #16
0
        public static IMarkerSymbol FindMarkerSym(string stylename, string stylecategory, string symname)
        {
            //查找Symbol无法实现,StyleGallery属于Desktop

            IStyleGallery        pStyGall;
            IStyleGalleryStorage pStyGallStor;
            IStyleGalleryItem    pStyGallItem;

            IMarkerSymbol         pMrkSym = null;
            IEnumStyleGalleryItem pEnumStyGallItm;
            string pStylePath = null;

            pStyGall = new ServerStyleGalleryClass();

            pStyGallStor = pStyGall as IStyleGalleryStorage;

            try
            {
                pStylePath = pStyGallStor.DefaultStylePath + "Civic.ServerStyle";

                pStyGallStor.TargetFile = pStylePath;

                //pStyGallStor.AddFile(pStylePath);

                //pStyGall.LoadStyle(pStylePath,""); 看来不能使用LoadStyle,出现未指定的错误

                pStyGallStor.AddFile(pStylePath);



                pEnumStyGallItm = pStyGall.get_Items("Marker Symbols", stylename, stylecategory);

                pEnumStyGallItm.Reset();
                //Make sure it contains markers
                pStyGallItem = pEnumStyGallItm.Next() as IStyleGalleryItem;

                //if(pStyGallItem==null) {MessageBox.Show("没有指定的Symbol");return null;}

                //pEnumStyGallItm.Reset();
                //Make sure it contains markers
                //pStyGallItem = pEnumStyGallItm.Next() as IStyleGalleryItem;

                while (pStyGallItem != null)
                {
                    if (pStyGallItem.Name.Equals(symname))
                    {
                        pMrkSym = pStyGallItem.Item as IMarkerSymbol;
                        break;
                    }


                    pStyGallItem = pEnumStyGallItm.Next() as IStyleGalleryItem;
                }

                return(pMrkSym);
            }
            catch (Exception e)
            {
                MessageBox.Show(e.Message);
                return(null);
            }
            finally{
                pStyGallStor.RemoveFile(pStylePath);
                pStyGall        = null;
                pStyGallStor    = null;
                pStyGallItem    = null;
                pEnumStyGallItm = null;
            }



            //return null;
        }
Example #17
0
        ///<summary>
        ///��ȡ���ſ��з���
        ///</summary>
        ///<param name="sServerStylePath">���ſ�ȫ·������</param>
        ///<param name="sGalleryClassName">GalleryClass����</param>
        ///<param name="symbolName">��������</param>
        ///<returns>����</returns>
        private ISymbol GetSymbol(string sServerStylePath, string sGalleryClassName, string symbolName)
        {
            try
            {
                //ServerStyleGallery����
                IStyleGallery pStyleGaller = new ServerStyleGalleryClass();
                IStyleGalleryStorage pStyleGalleryStorage = pStyleGaller as IStyleGalleryStorage;

                IEnumStyleGalleryItem pEnumSyleGalleryItem = null;
                IStyleGalleryItem pStyleGallerItem = null;
                IStyleGalleryClass pStyleGalleryClass = null;
                //ʹ��IStyleGalleryStorage�ӿڵ�AddFile��������ServerStyle�ļ�
                pStyleGalleryStorage.AddFile(sServerStylePath);
                //����ServerGallery�е�Class
                for (int i = 0; i < pStyleGaller.ClassCount; i++)
                {
                    pStyleGalleryClass = pStyleGaller.get_Class(i);
                    if (pStyleGalleryClass.Name != sGalleryClassName)
                        continue;
                    //��ȡEnumStyleGalleryItem����
                    pEnumSyleGalleryItem = pStyleGaller.get_Items(sGalleryClassName, sServerStylePath, "");
                    pEnumSyleGalleryItem.Reset();
                    //����pEnumSyleGalleryItem
                    pStyleGallerItem = pEnumSyleGalleryItem.Next();
                    while (pStyleGallerItem != null)
                    {
                        if (pStyleGallerItem.Name == symbolName)
                        {
                            //��ȡ����
                            ISymbol pSymbol = pStyleGallerItem.Item as ISymbol;
                            System.Runtime.InteropServices.Marshal.ReleaseComObject(pEnumSyleGalleryItem);
                            System.Runtime.InteropServices.Marshal.ReleaseComObject(pStyleGalleryClass);
                            return pSymbol;
                        }
                        pStyleGallerItem = pEnumSyleGalleryItem.Next();
                    }
                }
                System.Runtime.InteropServices.Marshal.ReleaseComObject(pEnumSyleGalleryItem);
                System.Runtime.InteropServices.Marshal.ReleaseComObject(pStyleGalleryClass);
                return null;
            }
            catch (Exception Err)
            {
                MessageBox.Show(Err.Message, "��ʾ", MessageBoxButtons.OK, MessageBoxIcon.Information);
                return null;
            }
        }
Example #18
0
 private void btnConvert_Click(object sender, EventArgs e)
 {
     if (this.listBox1.Items.Count == 0)
     {
         MessageBox.Show("请选择要转换的源符号库");
     }
     else if (this.txtDest.Text.Length == 0)
     {
         MessageBox.Show("请输入转出目录");
     }
     else
     {
         IStyleGallery  gallery;
         int            num3;
         string         str;
         SaveFileDialog dialog = new SaveFileDialog
         {
             FileName = this.txtDest.Text
         };
         Stream stream = dialog.OpenFile();
         if (stream != null)
         {
             Stream manifestResourceStream;
             int    num;
             if (!this.m_IsStyleFile)
             {
                 manifestResourceStream =
                     base.GetType()
                     .Assembly.GetManifestResourceStream(
                         "Yutai.ArcGIS.Controls.Controls.SymbolUI.template.style");
             }
             else
             {
                 manifestResourceStream =
                     base.GetType()
                     .Assembly.GetManifestResourceStream(
                         "Yutai.ArcGIS.Controls.Controls.SymbolUI.template.ServerStyle");
             }
             byte[] buffer = new byte[4096];
             while ((num = manifestResourceStream.Read(buffer, 0, 4096)) > 0)
             {
                 stream.Write(buffer, 0, num);
             }
             stream.Close();
         }
         if (this.m_IsStyleFile)
         {
             gallery = new ServerStyleGalleryClass();
             num3    = (gallery as IStyleGalleryStorage).FileCount - 1;
             while (num3 >= 0)
             {
                 str = (gallery as IStyleGalleryStorage).get_File(num3);
                 (gallery as IStyleGalleryStorage).RemoveFile(str);
                 num3--;
             }
         }
         else
         {
             gallery = new MyStyleGallery();
         }
         gallery.Clear();
         (gallery as IStyleGalleryStorage).TargetFile = this.txtDest.Text;
         foreach (object obj2 in this.listBox1.Items)
         {
             try
             {
                 IStyleGallery gallery2;
                 if (this.m_IsStyleFile)
                 {
                     gallery2 = new MyStyleGallery();
                 }
                 else
                 {
                     gallery2 = new ServerStyleGalleryClass();
                     num3     = (gallery2 as IStyleGalleryStorage).FileCount - 1;
                     while (num3 >= 0)
                     {
                         str = (gallery2 as IStyleGalleryStorage).get_File(num3);
                         (gallery2 as IStyleGalleryStorage).RemoveFile(str);
                         num3--;
                     }
                 }
                 gallery2.Clear();
                 (gallery2 as IStyleGalleryStorage).AddFile(obj2.ToString());
                 for (num3 = 0; num3 < gallery2.ClassCount; num3++)
                 {
                     string    name  = gallery2.get_Class(num3).Name;
                     IEnumBSTR mbstr = gallery2.get_Categories(name);
                     string    fileNameWithoutExtension = Path.GetFileNameWithoutExtension(obj2.ToString());
                     mbstr.Reset();
                     for (string str4 = mbstr.Next(); str4 != null; str4 = mbstr.Next())
                     {
                         IEnumStyleGalleryItem item = gallery2.get_Items(name, obj2.ToString(), str4);
                         item.Reset();
                         IStyleGalleryItem item2 = null;
                         try
                         {
                             item2 = item.Next();
                         }
                         catch
                         {
                         }
                         while (item2 != null)
                         {
                             string str6;
                             if (this.m_IsStyleFile)
                             {
                                 IStyleGalleryItem item3 = new ServerStyleGalleryItemClass();
                                 object            obj3  = item2.Item;
                                 item3.Item = obj3;
                                 string str5 = item2.Name;
                                 item3.Name = str5;
                                 if (item2.Category.Length > 0)
                                 {
                                     str6           = fileNameWithoutExtension + "_" + item2.Category;
                                     item3.Category = str6;
                                 }
                                 else
                                 {
                                     item3.Category = fileNameWithoutExtension;
                                 }
                                 try
                                 {
                                     string defaultStylePath = (gallery as IStyleGalleryStorage).DefaultStylePath;
                                     int    fileCount        = (gallery as IStyleGalleryStorage).FileCount;
                                     gallery.AddItem(item3);
                                 }
                                 catch (Exception)
                                 {
                                 }
                             }
                             else
                             {
                                 if (item2.Category.Length > 0)
                                 {
                                     str6           = fileNameWithoutExtension + "_" + item2.Category;
                                     item2.Category = str6;
                                 }
                                 else
                                 {
                                     item2.Category = fileNameWithoutExtension;
                                 }
                                 gallery.AddItem(item2);
                             }
                             try
                             {
                                 item2 = item.Next();
                             }
                             catch
                             {
                             }
                         }
                     }
                 }
                 (gallery2 as IStyleGalleryStorage).RemoveFile(obj2.ToString());
             }
             catch (Exception)
             {
             }
         }
         try
         {
             (gallery as IStyleGalleryStorage).RemoveFile(this.txtDest.Text);
         }
         catch
         {
         }
         base.Close();
     }
 }
Example #19
0
        private void styleToolStripMenuItem_Click(object sender, EventArgs e)
        {
            IStyleGallery pStyleGlry = new ServerStyleGalleryClass();
            IStyleGalleryStorage pStyleStorage = pStyleGlry as IStyleGalleryStorage;

            IRgbColor pRgbColor = new RgbColorClass();
            pRgbColor.Red = 255;
            pRgbColor.Green = 1;
            pRgbColor.Blue = 2;

            IStyleGalleryItem pStyleItem = new ServerStyleGalleryItemClass();
            pStyleItem.Name = "Red";
            pStyleItem.Category = "Default";
            pStyleItem.Item = pRgbColor;

            string pOldFile = pStyleStorage.TargetFile;
            pStyleStorage.TargetFile = @"E:\test.style";
            pStyleGlry.AddItem(pStyleItem);
            pStyleStorage.TargetFile = pOldFile;
            IColor color = pRgbColor as IColor;
            this.Text = color.RGB.ToString();
        }
Example #20
0
 private void btnConvert_Click(object sender, EventArgs e)
 {
     if (this.listBox1.Items.Count == 0)
     {
         MessageBox.Show("请选择要转换的源符号库");
     }
     else if (this.txtDest.Text.Length == 0)
     {
         MessageBox.Show("请输入转出目录");
     }
     else
     {
         this.Cursor = Cursors.WaitCursor;
         foreach (object obj2 in this.listBox1.Items)
         {
             try
             {
                 string         path   = obj2.ToString();
                 SaveFileDialog dialog = new SaveFileDialog();
                 string         str2   = ".style";
                 if (this.m_IsStyleFile)
                 {
                     str2 = ".ServerStyle";
                 }
                 string str3 = Path.Combine(this.txtDest.Text, Path.GetFileNameWithoutExtension(path) + str2);
                 if (File.Exists(str3))
                 {
                     File.Delete(str3);
                 }
                 dialog.FileName = str3;
                 Stream stream = dialog.OpenFile();
                 if (stream != null)
                 {
                     Stream        manifestResourceStream;
                     int           num;
                     IStyleGallery gallery;
                     IStyleGallery gallery2;
                     int           num3;
                     string        str4;
                     if (!this.m_IsStyleFile)
                     {
                         manifestResourceStream =
                             base.GetType()
                             .Assembly.GetManifestResourceStream(
                                 "Yutai.ArcGIS.Controls.Controls.SymbolUI.template.style");
                     }
                     else
                     {
                         manifestResourceStream =
                             base.GetType()
                             .Assembly.GetManifestResourceStream(
                                 "Yutai.ArcGIS.Controls.Controls.SymbolUI.template.ServerStyle");
                     }
                     byte[] buffer = new byte[4096];
                     while ((num = manifestResourceStream.Read(buffer, 0, 4096)) > 0)
                     {
                         stream.Write(buffer, 0, num);
                     }
                     stream.Close();
                     if (this.m_IsStyleFile)
                     {
                         gallery  = new MyStyleGallery();
                         gallery2 = new ServerStyleGalleryClass();
                         num3     = (gallery2 as IStyleGalleryStorage).FileCount - 1;
                         while (num3 >= 0)
                         {
                             str4 = (gallery2 as IStyleGalleryStorage).get_File(num3);
                             (gallery2 as IStyleGalleryStorage).RemoveFile(str4);
                             num3--;
                         }
                     }
                     else
                     {
                         gallery  = new ServerStyleGalleryClass();
                         gallery2 = new MyStyleGallery();
                         num3     = (gallery as IStyleGalleryStorage).FileCount - 1;
                         while (num3 >= 0)
                         {
                             str4 = (gallery as IStyleGalleryStorage).get_File(num3);
                             (gallery as IStyleGalleryStorage).RemoveFile(str4);
                             num3--;
                         }
                     }
                     gallery.Clear();
                     gallery2.Clear();
                     (gallery as IStyleGalleryStorage).AddFile(path);
                     (gallery2 as IStyleGalleryStorage).TargetFile = str3;
                     for (num3 = 0; num3 < gallery.ClassCount; num3++)
                     {
                         string    name  = gallery.get_Class(num3).Name;
                         IEnumBSTR mbstr = gallery.get_Categories(name);
                         mbstr.Reset();
                         for (string str6 = mbstr.Next(); str6 != null; str6 = mbstr.Next())
                         {
                             IEnumStyleGalleryItem item = gallery.get_Items(name, path, str6);
                             item.Reset();
                             IStyleGalleryItem item2 = null;
                             try
                             {
                                 item2 = item.Next();
                             }
                             catch
                             {
                             }
                             while (item2 != null)
                             {
                                 if (this.m_IsStyleFile)
                                 {
                                     IStyleGalleryItem item3 = new ServerStyleGalleryItemClass();
                                     object            obj3  = item2.Item;
                                     item3.Item = obj3;
                                     string str7 = item2.Name;
                                     item3.Name = str7;
                                     string category = item2.Category;
                                     item3.Category = category;
                                     gallery2.AddItem(item3);
                                 }
                                 else
                                 {
                                     gallery2.AddItem(item2);
                                 }
                                 try
                                 {
                                     item2 = item.Next();
                                 }
                                 catch
                                 {
                                 }
                             }
                         }
                     }
                     (gallery as IStyleGalleryStorage).RemoveFile(path);
                     (gallery2 as IStyleGalleryStorage).RemoveFile(str3);
                 }
             }
             catch (Exception)
             {
             }
         }
         this.Cursor = Cursors.Default;
         base.Close();
     }
 }
 private void demo2(string CurrentStyleFile, string CurrentStyleGalleryClass)
 {
     IStyleGallery pStyleGallery = new ServerStyleGalleryClass();
         IStyleGalleryStorage pStyleGalleryStorage;
         pStyleGalleryStorage = pStyleGallery as IStyleGalleryStorage;
         //增加符号文件
         pStyleGalleryStorage.AddFile(CurrentStyleFile);
         //根据当前符号的类别和文件得到符号的枚举循环
         //符号类别包括Fill Symbol,Line Symbol等
         IEnumStyleGalleryItem mEnumStyleItem;
         mEnumStyleItem = pStyleGallery.get_Items(CurrentStyleGalleryClass, CurrentStyleFile, "");
         //得到符号文件类别的各个条目,增加到一个Combox中
         IEnumBSTR pEnumBSTR = pStyleGallery.get_Categories(CurrentStyleGalleryClass);
         pEnumBSTR.Reset();
         string Category = "";
         Category = pEnumBSTR.Next();
         while (Category != null)
         {
             //cbxCategory.Items.Add(Category);
             Category = pEnumBSTR.Next();
         }
         //得到各个符号并转化为图片
         mEnumStyleItem.Reset();
         IStyleGalleryItem mStyleItem = mEnumStyleItem.Next();
         int ImageIndex = 0;
         IStyleGalleryClass mStyleClass = new FillSymbolStyleGalleryClassClass();
         while (mStyleItem != null)
         {
             //调用另一个类的方法将符号转化为图片
             Bitmap bmpB = StyleGalleryItemToBmp(32, 32, mStyleClass, mStyleItem);
             Bitmap bmpS = StyleGalleryItemToBmp(16, 16, mStyleClass, mStyleItem);
             Largeimage.Images.Add(bmpB);
             Smallimage.Images.Add(bmpS);
             ListViewItem lvItem = new ListViewItem(new string[] { mStyleItem.Name, mStyleItem.ID.ToString(), mStyleItem.Category }, ImageIndex);
             this.lvRendererFields.Items.Add(lvItem);
             mStyleItem = mEnumStyleItem.Next();
             ImageIndex++;
         }
         //必须采用此方式进行释放,第二次才能正常读取
         System.Runtime.InteropServices.Marshal.ReleaseComObject(mEnumStyleItem);
 }
Example #22
0
 private void btnConvert_Click(object sender, EventArgs e)
 {
     if (this.txtOrigin.Text.Length == 0)
     {
         MessageBox.Show("请选择要转换的源符号库");
     }
     else if (this.txtDest.Text.Length == 0)
     {
         MessageBox.Show("请输入目的符号库");
     }
     else
     {
         SaveFileDialog dialog = new SaveFileDialog
         {
             FileName = this.txtDest.Text
         };
         Stream stream = dialog.OpenFile();
         if (stream != null)
         {
             Stream        manifestResourceStream;
             int           num;
             IStyleGallery gallery;
             IStyleGallery gallery2;
             int           num3;
             if (this.m_IsStyleFile)
             {
                 manifestResourceStream =
                     base.GetType()
                     .Assembly.GetManifestResourceStream("Yutai.ArcGIS.Controls.SymbolUI.template.style");
             }
             else
             {
                 manifestResourceStream =
                     base.GetType()
                     .Assembly.GetManifestResourceStream(
                         "Yutai.ArcGIS.Controls.SymbolUI.template.ServerStyle");
             }
             byte[] buffer = new byte[4096];
             while ((num = manifestResourceStream.Read(buffer, 0, 4096)) > 0)
             {
                 stream.Write(buffer, 0, num);
             }
             stream.Close();
             if (this.m_IsStyleFile)
             {
                 gallery  = new ServerStyleGalleryClass();
                 gallery2 = new MyStyleGallery();
             }
             else
             {
                 gallery  = new MyStyleGallery();
                 gallery2 = new ServerStyleGalleryClass();
                 for (num3 = (gallery2 as IStyleGalleryStorage).FileCount - 1; num3 >= 0; num3--)
                 {
                     string path = (gallery2 as IStyleGalleryStorage).get_File(num3);
                     (gallery2 as IStyleGalleryStorage).RemoveFile(path);
                 }
             }
             (gallery as IStyleGalleryStorage).AddFile(this.txtOrigin.Text);
             (gallery2 as IStyleGalleryStorage).AddFile(this.txtDest.Text);
             for (num3 = 0; num3 < gallery.ClassCount; num3++)
             {
                 string name = gallery.get_Class(num3).Name;
                 IEnumStyleGalleryItem item = gallery.get_Items(name, this.txtOrigin.Text, "");
                 item.Reset();
                 for (IStyleGalleryItem item2 = item.Next(); item2 != null; item2 = item.Next())
                 {
                     gallery2.AddItem(item2);
                 }
             }
         }
     }
 }
        /// <summary>
        ///     获得符号
        /// </summary>
        /// <params name="sServerStylePath"></params>
        /// <params name="sGalleryClassName"></params>
        /// <params name="symbolName"></params>
        /// <returns></returns>
        public static ILineSymbol GetSymbol(string sServerStylePath, string sGalleryClassName, string symbolName)
        {
            IStyleGallery pStyleGallery = new ServerStyleGalleryClass();
            var pStyleGalleryStorage = (IStyleGalleryStorage)pStyleGallery;
            ILineSymbol lineSymbol = new SimpleLineSymbolClass();

            //查找到符号
            pStyleGalleryStorage.TargetFile = sServerStylePath; //输入符号的地址
            var pEnumStyleGalleryItem = pStyleGallery.Items["Line Symbols", sServerStylePath, sGalleryClassName];
            //sGalleryClassName为输入符号库的名称

            pEnumStyleGalleryItem.Reset();
            var pStyleGalleryItem = pEnumStyleGalleryItem.Next();
            while (pStyleGalleryItem != null)
            {
                if (pStyleGalleryItem.Name == symbolName)
                {
                    lineSymbol = (ILineSymbol)pStyleGalleryItem.Item;
                    Marshal.ReleaseComObject(pEnumStyleGalleryItem);
                    break;
                }
                pStyleGalleryItem = pEnumStyleGalleryItem.Next();
            }
            //定义符号的大小,已经定义好了是size=30
            //lineSymbol.Width = 2;

            return lineSymbol;
        }
Example #24
0
 static IStyleGallery GetStyleGallery(string stylePath)
 {
     IStyleGallery styleGallery = null;
       String tempPath = stylePath.ToLower();
       if (tempPath.Contains(".serverstyle"))
       {
     styleGallery = new ServerStyleGalleryClass();
       }
       else
       {
     styleGallery = new StyleGalleryClass();
       }
       return styleGallery;
 }
Example #25
0
        public static IMarkerSymbol FindMarkerSym(string stylename, string stylecategory, string symname)
        {
            //����Symbol�޷�ʵ�֣�StyleGallery����Desktop

            IStyleGallery pStyGall;
            IStyleGalleryStorage pStyGallStor;
            IStyleGalleryItem pStyGallItem;

            IMarkerSymbol pMrkSym=null;
            IEnumStyleGalleryItem pEnumStyGallItm;
            string pStylePath=null;
            pStyGall=new ServerStyleGalleryClass();

            pStyGallStor=pStyGall as IStyleGalleryStorage;

            try
            {

                pStylePath=pStyGallStor.DefaultStylePath+"Civic.ServerStyle";

                pStyGallStor.TargetFile=pStylePath;

                //pStyGallStor.AddFile(pStylePath);

                //pStyGall.LoadStyle(pStylePath,""); ��������ʹ��LoadStyle������δָ���Ĵ���

                pStyGallStor.AddFile(pStylePath);

                pEnumStyGallItm = pStyGall.get_Items("Marker Symbols",stylename,stylecategory);

                pEnumStyGallItm.Reset();
                //Make sure it contains markers
                pStyGallItem = pEnumStyGallItm.Next() as IStyleGalleryItem;

                //if(pStyGallItem==null) {MessageBox.Show("û��ָ����Symbol");return null;}

                //pEnumStyGallItm.Reset();
                //Make sure it contains markers
                //pStyGallItem = pEnumStyGallItm.Next() as IStyleGalleryItem;

                while(pStyGallItem!=null)
                {

                    if(pStyGallItem.Name.Equals(symname))
                    {
                        pMrkSym=pStyGallItem.Item as IMarkerSymbol;
                        break;

                    }

                    pStyGallItem = pEnumStyGallItm.Next() as IStyleGalleryItem;

                }

                return pMrkSym;
            }
            catch(Exception e)
            {
                MessageBox.Show(e.Message);
                return null;

            }
            finally{
                pStyGallStor.RemoveFile(pStylePath);
                 pStyGall=null;
                 pStyGallStor=null;
                 pStyGallItem=null;
                 pEnumStyGallItm=null;

            }

            //return null;
        }
Example #26
0
        private void btnok_Click(object sender, EventArgs e)
        {
            ////构建图片存储临时目录
            //FileInfo fileInfo = new FileInfo(fileName);
            //string path = fileInfo.DirectoryName;
            //string bitmapFileName = path + @"\" + this.txtSymbolName.Text + ".bmp";
            ////创建新的画图,并将底色清为白色
            ////Bitmap bitmap = new Bitmap(100, 100, PixelFormat.Format24bppRgb);
            //Bitmap bitmap = new Bitmap(listBoxImage.ImageSize.Width - 100, listBoxImage.ImageSize.Height);
            //Graphics graphics = Graphics.FromImage(bitmap);
            //System.Drawing.Color color = System.Drawing.Color.FromArgb(0, 0, 0);
            //graphics.Clear(Color.White);
            ////将各个子样式在画图上绘制
            //Bitmap image;
            //int startX;
            //int startY;
            //for (int i = 0; i < supergrid.PrimaryGrid.Rows.Count; i++)
            //{
            //    image = (Bitmap)imagelist[i];
            //    startX = picturepre.Width / 2 - (int)(imagelist[i].Size.Width * Radio) / 2;
            //    startY = picturepre.Height / 2 - (int)(imagelist[i].Size.Height * Radio) / 2;

            //    image.MakeTransparent(Color.Transparent);
            //    System.Drawing.Rectangle rectangle = new Rectangle(startX-50, startY-50, (int)(imagelist[i].Size.Width * Radio), (int)(imagelist[i].Size.Height * Radio));
            //    graphics.DrawImage(imagelist[i], rectangle);
            //    graphics.Save();
            //}
            //graphics.SmoothingMode = SmoothingMode.HighQuality;
            //graphics.Dispose();
            ////将图片保存在临时目录
            //bitmap.Save(bitmapFileName, System.Drawing.Imaging.ImageFormat.Bmp);
            ////创建图片样式
            //IPictureMarkerSymbol pictureMarkerSymbol = new PictureMarkerSymbolClass();
            //pictureMarkerSymbol.CreateMarkerSymbolFromFile(esriIPictureType.esriIPictureBitmap, bitmapFileName);
            //pictureMarkerSymbol.Angle = 0;

            //pictureMarkerSymbol.Size = 30;
            //pictureMarkerSymbol.XOffset = 0;
            //pictureMarkerSymbol.YOffset = 0;
            for (int i = 0; i < Symbollist.Count; i++)
            {
                pMultiLineSymbol.AddLayer(Symbollist[i] as IMarkerSymbol);
            }


            IStyleGallery        styleGallery;
            IStyleGalleryItem    styleGalleryItem;
            IStyleGalleryStorage styleGalleryStorge;

            //创建新的样式
            styleGalleryItem          = new ServerStyleGalleryItemClass();
            styleGalleryItem.Name     = this.txtSymbolName.Text;
            styleGalleryItem.Category = "default";
            object objSymbol = pMultiLineSymbol;

            styleGalleryItem.Item = objSymbol;

            styleGallery                  = new ServerStyleGalleryClass();
            styleGalleryStorge            = styleGallery as IStyleGalleryStorage;
            styleGalleryStorge.TargetFile = fileName;
            //添加新样式
            //styleGallery.AddItem(styleGalleryItem);

            ISymbologyStyleClass pSymbolClass = psymbologyStyleClass;

            pSymbolClass.AddItem(styleGalleryItem, 0);
            pSymbolClass.SelectItem(0);

            //保存新样式
            //styleGallery.SaveStyle(fileName, fileInfo.Name, "marker Symbols");

            this.Close();
        }