Пример #1
0
        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);
        }
Пример #2
0
        private void lvRendererFields_DoubleClick(object sender, EventArgs e)
        {
            ListViewItem selectedItem = lvRendererFields.FocusedItem;

            if (selectedItem == null)
            {
                return;
            }
            int imgIdx = selectedItem.ImageIndex;

            //ISymbol symbol = GetSymbolBySymbolSelector(esriGeometryType.esriGeometryPolygon);
            IStyleGalleryItem styleItem = GetSymbolBySymbologyControl("Fill Symbols");

            if (styleItem == null)
            {
                return;
            }

            ISymbol symbol = styleItem.Item as ISymbol;

            if (symbol == null)
            {
                return;
            }

            //symbolPBox.Visible = true;
            IStyleGalleryClass mStyleClass = new FillSymbolStyleGalleryClassClass();
            Bitmap             image       = StyleGalleryItemToBmp(24, 24, mStyleClass, styleItem);

            //Bitmap image = DrawToPictureBox(symbol, symbolPBox);
            Largeimage.Images[imgIdx] = image;
            Smallimage.Images[imgIdx] = image;
            lvRendererFields.Refresh();
            if (fieldSymbolHashTable.ContainsKey(selectedItem.Text))
            {
                fieldSymbolHashTable.Remove(selectedItem.Text);
            }
            fieldSymbolHashTable.Add(selectedItem.Text, symbol);
        }
Пример #3
0
        private void lvRendererFieldsAddItemWithSymbol(System.Object selectedItem)
        {
            IStyleGalleryItem styleItem = GetSymbolBySymbologyControl("Fill Symbols");

            if (styleItem == null)
            {
                return;
            }

            ISymbol symbol = styleItem.Item as ISymbol;

            if (symbol == null)
            {
                return;
            }

            //symbolPBox.Visible = true;
            IStyleGalleryClass mStyleClass = new FillSymbolStyleGalleryClassClass();
            Bitmap             image       = StyleGalleryItemToBmp(24, 24, mStyleClass, styleItem);
            //Bitmap image = DrawToPictureBox(symbol, symbolPBox);
            int currentIdx = Largeimage.Images.Count;

            currentIdx = Smallimage.Images.Count;
            Largeimage.Images.Add(image);
            Smallimage.Images.Add(image);
            ListViewItem newItem = new ListViewItem();

            newItem.ImageIndex = currentIdx;
            newItem.Text       = selectedItem.ToString();
            lvRendererFields.Items.Add(newItem);
            lvRendererFields.Refresh();
            if (fieldSymbolHashTable.ContainsKey(selectedItem.ToString()))
            {
                fieldSymbolHashTable.Remove(selectedItem.ToString());
            }
            fieldSymbolHashTable.Add(selectedItem.ToString(), symbol);
            //symbolPBox.Visible = false;
        }
Пример #4
0
        private void lvRendererFields_DoubleClick(object sender, EventArgs e)
        {
            ListViewItem selectedItem = lvRendererFields.FocusedItem;
                if (selectedItem == null) return;
                int imgIdx = selectedItem.ImageIndex;

                //ISymbol symbol = GetSymbolBySymbolSelector(esriGeometryType.esriGeometryPolygon);
                IStyleGalleryItem styleItem = GetSymbolBySymbologyControl("Fill Symbols");
                if (styleItem == null) return;

                ISymbol symbol = styleItem.Item as ISymbol;
                if (symbol == null) return;

                //symbolPBox.Visible = true;
                IStyleGalleryClass mStyleClass = new FillSymbolStyleGalleryClassClass();
                Bitmap image = StyleGalleryItemToBmp(24, 24, mStyleClass, styleItem);
                //Bitmap image = DrawToPictureBox(symbol, symbolPBox);
                Largeimage.Images[imgIdx] = image;
                Smallimage.Images[imgIdx] = image;
                lvRendererFields.Refresh();
                if (fieldSymbolHashTable.ContainsKey(selectedItem.Text))
                {
                    fieldSymbolHashTable.Remove(selectedItem.Text);
                }
                fieldSymbolHashTable.Add(selectedItem.Text, symbol);
        }
Пример #5
0
        private void lvRendererFieldsAddItemWithSymbol(System.Object selectedItem)
        {
            IStyleGalleryItem styleItem = GetSymbolBySymbologyControl("Fill Symbols");
            if (styleItem == null) return;

            ISymbol symbol = styleItem.Item as ISymbol;
            if (symbol == null) return;

            //symbolPBox.Visible = true;
            IStyleGalleryClass mStyleClass = new FillSymbolStyleGalleryClassClass();
            Bitmap image = StyleGalleryItemToBmp(24, 24, mStyleClass, styleItem);
            //Bitmap image = DrawToPictureBox(symbol, symbolPBox);
            int currentIdx = Largeimage.Images.Count;
            currentIdx = Smallimage.Images.Count;
            Largeimage.Images.Add(image);
            Smallimage.Images.Add(image);
            ListViewItem newItem = new ListViewItem();
            newItem.ImageIndex = currentIdx;
            newItem.Text = selectedItem.ToString();
            lvRendererFields.Items.Add(newItem);
            lvRendererFields.Refresh();
            if (fieldSymbolHashTable.ContainsKey(selectedItem.ToString()))
            {
                fieldSymbolHashTable.Remove(selectedItem.ToString());
            }
            fieldSymbolHashTable.Add(selectedItem.ToString(), symbol);
            //symbolPBox.Visible = false;
        }
Пример #6
0
 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);
 }