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); }
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); }
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; }
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); }
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; }