private void InitialColorRamp(esriSymbologyStyleClass styleClass) { if (m_pRasterRenderer is IRasterStretchColorRampRenderer) { //得到当前栅格拉伸渲染样式 IRasterStretchColorRampRenderer rasterStrecthcRenderer = m_pRasterRenderer as IRasterStretchColorRampRenderer; //从文件打开渲染库 string sInstall = ClsGDBDataCommon.GetParentPathofExe() + @"Resource\Style\ESRI.ServerStyle"; axSymbologyControl1.LoadStyleFile(sInstall); axSymbologyControl1.StyleClass = esriSymbologyStyleClass.esriStyleClassColorRamps; pSymbolClass = axSymbologyControl1.GetStyleClass(esriSymbologyStyleClass.esriStyleClassColorRamps); IStyleGalleryItem pStyleGalleryItem = new ServerStyleGalleryItem(); pStyleGalleryItem.Item = rasterStrecthcRenderer.ColorRamp; pSymbolClass.AddItem(pStyleGalleryItem, 0); //将渲染库中所有渲染方式添加到列表中 for (int i = 0; i < pSymbolClass.ItemCount; i++) { stdole.IPictureDisp pPicture = pSymbolClass.PreviewItem(pSymbolClass.GetItem(i), cmbColorRamp.Width, cmbColorRamp.Height); Image image = Image.FromHbitmap(new System.IntPtr(pPicture.Handle)); cmbColorRamp.Items.Add(image); } if (pSymbolClass.ItemCount > 0) { pSymbolClass.SelectItem(0); } if (cmbColorRamp.Items.Count > 0) { cmbColorRamp.SelectedIndex = 0; } } }
//返回样式图片 public void GetImageByGiveSymbolBeforeSelectItem(esriSymbologyStyleClass styleClass, ISymbol symbol) { axSymbologyControl.StyleClass = styleClass; ISymbologyStyleClass symbologyStyleClass = axSymbologyControl.GetStyleClass(styleClass); IStyleGalleryItem styleGalleryItem = new ServerStyleGalleryItem(); styleGalleryItem.Item = symbol; stdole.IPictureDisp picture = symbologyStyleClass.PreviewItem(styleGalleryItem, ImagePreview.Width, ImagePreview.Height); System.Drawing.Image pImage = System.Drawing.Image.FromHbitmap(new System.IntPtr(picture.Handle)); ImagePreview.Image = pImage; }
private void btnok_Click(object sender, EventArgs e) { if (pSymbolOK != null) { IStyleGalleryItem currentStyleGalleryItem = new ServerStyleGalleryItem(); currentStyleGalleryItem.Item = pSymbolOK; psymbologyStyleClass.AddItem(currentStyleGalleryItem, 0); psymbologyStyleClass.SelectItem(0); this.Close(); } else { } }
//选择样式前返回面图片 public Image GetImageByGiveAreaSymbolBeforeSelectItem(esriSymbologyStyleClass styleClass, IAreaPatch symbol, int width, int height) { axSymbologyCtlFrame.StyleClass = styleClass; ISymbologyStyleClass symbologyStyleClass = axSymbologyCtlFrame.GetStyleClass(styleClass); IStyleGalleryItem styleGalleryItem = new ServerStyleGalleryItem(); styleGalleryItem.Item = symbol; symbologyStyleClass.AddItem(styleGalleryItem, 0); symbologyStyleClass.SelectItem(0); stdole.IPictureDisp picture = symbologyStyleClass.PreviewItem(pStyleGalleryItem, width, height); System.Drawing.Image image = System.Drawing.Image.FromHbitmap(new System.IntPtr(picture.Handle)); return(image); }
/// <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); }
/// <summary> /// ���ú�SymbologyControl��StyleClass,�����ͼ��,�ѵ�ǰ��TOCͼ���ķ�����ӵ���ǰSymbologyStyleClass��ȥ,����֮����ѡ��״̬ /// </summary> /// <param name="symbologyStyleClass"></param> private void SetFeatureClassStyle(esriSymbologyStyleClass symbologyStyleClass) { this.axSymbologyControl.StyleClass = symbologyStyleClass; ISymbologyStyleClass pSymbologyStyleClass = this.axSymbologyControl.GetStyleClass(symbologyStyleClass); if (this.pLegendClass != null) { IStyleGalleryItem currentStyleGalleryItem = new ServerStyleGalleryItem(); currentStyleGalleryItem.Name = "Current Symbol"; currentStyleGalleryItem.Item = pLegendClass.Symbol; pSymbologyStyleClass.AddItem(currentStyleGalleryItem, 0); this.pStyleGalleryItem = currentStyleGalleryItem; } pSymbologyStyleClass.SelectItem(0); }
private void SetFeatureClassStyle(esriSymbologyStyleClass symbologyStyleClass) { this.axSymbologyControl1.StyleClass = symbologyStyleClass; ISymbologyStyleClass pSymbologyStyleClass = this.axSymbologyControl1. GetStyleClass(symbologyStyleClass); if (this.pLegendClass != null) { IStyleGalleryItem currentStyleGalleryItem = new ServerStyleGalleryItem(); currentStyleGalleryItem.Name = "当前符号"; currentStyleGalleryItem.Item = pLegendClass.Symbol; pSymbologyStyleClass.AddItem(currentStyleGalleryItem, 0); this.pStyleGalleryItem = currentStyleGalleryItem; } pSymbologyStyleClass.SelectItem(0); }
public IStyleGalleryItem GetItem(esriSymbologyStyleClass styleClass, ISymbol symbol) { m_styleGalleryItem = null; //Get and set the style class axSymbologyControl1.StyleClass = styleClass; ISymbologyStyleClass symbologyStyleClass = axSymbologyControl1.GetStyleClass(styleClass); //Create a new server style gallery item with its style set IStyleGalleryItem styleGalleryItem = new ServerStyleGalleryItem(); styleGalleryItem.Item = symbol; styleGalleryItem.Name = "mySymbol"; //Add the item to the style class and select it symbologyStyleClass.AddItem(styleGalleryItem, 0); symbologyStyleClass.SelectItem(0); //Show the modal form this.ShowDialog(); return(m_styleGalleryItem); }
//选择样式前返回图片 public Image GetImageByGiveSymbolBeforeSelectItem(esriSymbologyStyleClass styleClass, ISymbol symbol, int width, int height) { try { axSymbologyControl.StyleClass = styleClass; ISymbologyStyleClass symbologyStyleClass = axSymbologyControl.GetStyleClass(styleClass); IStyleGalleryItem styleGalleryItem = new ServerStyleGalleryItem(); styleGalleryItem.Item = symbol; //// styleGalleryItem.Name = "DefaultSymbol"; symbologyStyleClass.AddItem(styleGalleryItem, 0); symbologyStyleClass.SelectItem(0); stdole.IPictureDisp picture = symbologyStyleClass.PreviewItem(pStyleGalleryItem, width, height); System.Drawing.Image image = System.Drawing.Image.FromHbitmap(new System.IntPtr(picture.Handle)); return(image); } catch (System.Exception ex) { MessageBox.Show(ex.StackTrace); return(null); } }
public IStyleGalleryItem GetItem(esriSymbologyStyleClass styleClass, ISymbol symbol) { this._styleGalleryItem = null; //Get and set the style class this._axSymCtrl.StyleClass = styleClass; ISymbologyStyleClass symbologyStyleClass = this._axSymCtrl.GetStyleClass(styleClass); //Create a new server style gallery item with its style set IStyleGalleryItem styleGalleryItem = new ServerStyleGalleryItem(); styleGalleryItem.Item = symbol; styleGalleryItem.Name = "Current"; //Add the item to the style class and select it symbologyStyleClass.AddItem(styleGalleryItem, 0); symbologyStyleClass.SelectItem(0); //Show the modal form this.ShowDialog(); return this._styleGalleryItem; }
private void SetFeatureClassStyle(esriSymbologyStyleClass styleClass, ISymbol symbol) { m_styleGalleryItem = null; //Get and set the style class m_axSymbologyControl.StyleClass = styleClass; ISymbologyStyleClass symbologyStyleClass = m_axSymbologyControl.GetStyleClass(styleClass); //Create a new server style gallery item with its style set IStyleGalleryItem styleGalleryItem = new ServerStyleGalleryItem(); styleGalleryItem.Item = symbol; styleGalleryItem.Name = "mySymbol"; //Add the item to the style class and select it symbologyStyleClass.AddItem(styleGalleryItem, 0); symbologyStyleClass.SelectItem(0); }
/// <summary> /// 初始化SymbologyControl的StyleClass,图层如果已有符号,则把符号添加到SymbologyControl中的第一个符号,并选中 /// </summary> /// <param name="symbologyStyleClass"></param> private void SetFeatureClassStyle(esriSymbologyStyleClass symbologyStyleClass) { this.axSymbologyControl.StyleClass = symbologyStyleClass; ISymbologyStyleClass pSymbologyStyleClass = this.axSymbologyControl.GetStyleClass(symbologyStyleClass); if (this.pLegendClass != null) { IStyleGalleryItem currentStyleGalleryItem = new ServerStyleGalleryItem(); currentStyleGalleryItem.Name = "当前符号"; currentStyleGalleryItem.Item = pLegendClass.Symbol; pSymbologyStyleClass.AddItem(currentStyleGalleryItem, 0); this.pStyleGalleryItem = currentStyleGalleryItem; } pSymbologyStyleClass.SelectItem(0); }
/// <summary> /// 初始化与拉伸相关控件 /// </summary> private void initstreach() { string sInstall = ClsGDBDataCommon.GetParentPathofExe() + @"Resource\Style\ESRI.ServerStyle"; axSymbologyControl1.LoadStyleFile(sInstall); axSymbologyControl1.StyleClass = esriSymbologyStyleClass.esriStyleClassColorRamps; pSymbolClass = axSymbologyControl1.GetStyleClass(esriSymbologyStyleClass.esriStyleClassColorRamps); pRasterRender = pRLayer.Renderer; pRasterRenderColorRamp = pRasterRender as IRasterRendererColorRamp; //生成色度带 if (pRasterRender is IRasterStretchColorRampRenderer) { IStyleGalleryItem pStyleGalleryItem = new ServerStyleGalleryItem(); pStyleGalleryItem.Item = pRasterRenderColorRamp.ColorRamp; pSymbolClass.AddItem(pStyleGalleryItem, 0); pSymbolClass.SelectItem(0); } for (int i = 0; i < pSymbolClass.get_ItemCount(pSymbolClass.StyleCategory); i++) { stdole.IPictureDisp pPicture = pSymbolClass.PreviewItem(pSymbolClass.GetItem(i), cmbColorRamp.Width, cmbColorRamp.Height); Image image = Image.FromHbitmap(new System.IntPtr(pPicture.Handle)); cmbColorRamp.Items.Add(image); } if (cmbColorRamp.Items.Count > 0) { cmbColorRamp.SelectedIndex = 0; } //判断拉伸方式和拉伸波段 if (pRasterRender is IRasterStretchColorRampRenderer) { pSCRampRender = pRasterRender as IRasterStretchColorRampRenderer; pRasterStretch = pRasterRender as IRasterStretch; int bandindex = pSCRampRender.BandIndex; cmbBand.SelectedIndex = bandindex; if (pRasterStretch.StretchType == esriRasterStretchTypesEnum.esriRasterStretch_Custom) { cmbStreach.SelectedIndex = 1; } else if (pRasterStretch.StretchType == esriRasterStretchTypesEnum.esriRasterStretch_MinimumMaximum) { cmbStreach.SelectedIndex = 2; } else if (pRasterStretch.StretchType == esriRasterStretchTypesEnum.esriRasterStretch_StandardDeviations) { cmbStreach.SelectedIndex = 3; } else if (pRasterStretch.StretchType == esriRasterStretchTypesEnum.esriRasterStretch_HistogramEqualize) { cmbStreach.SelectedIndex = 4; } else { cmbStreach.SelectedIndex = 0; } lblminstr.Text = pSCRampRender.LabelLow; lblmaxstr.Text = pSCRampRender.LabelHigh; txtmin.Text = pSCRampRender.LabelLow; txtmax.Text = pSCRampRender.LabelHigh; if (pRasterStretch.StretchType == esriRasterStretchTypesEnum.esriRasterStretch_MinimumMaximum) { txtmax.Visible = true; txtmin.Visible = false; } } else { cmbBand.SelectedIndex = 0; cmbStreach.SelectedIndex = 0; } isminmax = true; }