ImageVerifierCode 换一换
格式:DOCX , 页数:15 ,大小:129.19KB ,
资源ID:6816701      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-6816701.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(035自建符号Symbol选择对话框Word下载.docx)为本站会员(b****4)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

035自建符号Symbol选择对话框Word下载.docx

1、 pLegendClass = tempLegendClass;/通过点击 toccontrol 时候可以获得要素类的 LegendClass! pLayer = tempLayer;/点击的图层4. 窗体加载事件:private void SymbologyFrm_Load(object sender, EventArgs e) switch(IFeatureLayer)pLayer).FeatureClass.ShapeType)/判断图层中要素类的图形类型,不同类型显示的调节值的控件不同 case esriGeometryType.esriGeometryPoint:/点 pStyleC

2、lass = esriSymbologyStyleClass.esriStyleClassMarkerSymbols; lbColor.Visible = true; lbWidth.Visible = true; lbWidth.Text = 符号大小; lbAngle.Visible = true; btColor.Visible = true; nudWidth.Visible = true; cbColor.Visible = true; nudAngle.Visible = true; break; case esriGeometryType.esriGeometryPolyline

3、:/线 pStyleClass = esriSymbologyStyleClass.esriStyleClassLineSymbols; lbColor.Location = System.Drawing.Point.Add(lbColor.Location, new Size(0, 12); lbWidth.Location = System.Drawing.Point.Add(lbWidth.Location, new Size(0, 24);线符号粗细 btColor.Location = System.Drawing.Point.Add(btColor.Location, new Si

4、ze(0, 12); cbColor.Location = System.Drawing.Point.Add(cbColor.Location, new Size(0, 12); nudWidth.Location = System.Drawing.Point.Add(nudWidth.Location, new Size(0, 24); case esriGeometryType.esriGeometryPolygon:/面 pStyleClass = esriSymbologyStyleClass.esriStyleClassFillSymbols;框线宽度 lbOutlineColor.

5、Visible = true; btOutlineColor.Visible = true; cbOutlineColor.Visible = true; default: this.Close(); string strInstall = C:Program Files (x86)ArcGIS/安装目录,10中可以用函数获得 RuntimeManager 可以获取!/ESRI.ArcGIS.RuntimeManager.ActiveRuntime.Path 可以获得 Engine 的安装目录 string stylePath = strInstall + StylesESRI.ServerS

6、tyle/获取 ESRI.ServerStyle 文件 axSymbologyControl1.LoadStyleFile(stylePath);/加载此文件 axSymbologyControl1.StyleClass = pStyleClass;/将上面获得的 pStyleClass 赋值过去,显示点、线还是面,由此决定! IStyleGalleryItem pCurrentStyleGalleryItem = new StyleGalleryItem();/新建当前符号的实例 pCurrentStyleGalleryItem.Name = 当前符号 pCurrentStyleGaller

7、yItem.Item = pLegendClass.Symbol;/将当前的图例 symbol 赋值过去 ISymbologyStyleClass pSymbologyStyleClass = axSymbologyControl1.GetStyleClass(axSymbologyControl1.StyleClass);/QI,加入这个新建项 pSymbologyStyleClass.AddItem(pCurrentStyleGalleryItem, 0); pSymbologyStyleClass.SelectItem(0); /同时选中5. 选择项的时候触发:private void

8、axSymbologyControl1_OnItemSelected(object sender, ISymbologyControlEvents_OnItemSelectedEvent e) pStyleGalleryItem = e.styleGalleryItem as IStyleGalleryItem;/获取选择项 PreviewPicture();/在图片框中显示 if (IFeatureLayer)pLayer).FeatureClass.ShapeType = esriGeometryType.esriGeometryPoint)/点,将属性传递到调节的控件上 IRgbColo

9、r pColor = (IMarkerSymbol)pStyleGalleryItem.Item).Color as IRgbColor; btColor.BackColor = Color.FromArgb(pColor.Red, pColor.Green, pColor.Blue);/赋值颜色 nudAngle.Value = Convert.ToDecimal(IMarkerSymbol)pStyleGalleryItem.Item).Angle);/赋值角度 nudWidth.Value = Convert.ToDecimal(IMarkerSymbol)pStyleGalleryIt

10、em.Item).Size);/赋值大小 if (IFeatureLayer)pLayer).FeatureClass.ShapeType = esriGeometryType.esriGeometryPolyline)/线 IRgbColor pColor = (ILineSymbol)pStyleGalleryItem.Item).Color as IRgbColor;/赋值线的颜色 nudWidth.Value = Convert.ToDecimal(ILineSymbol)pStyleGalleryItem.Item).Width);/赋值线的宽度 if (IFeatureLayer)

11、pLayer).FeatureClass.ShapeType = esriGeometryType.esriGeometryPolygon)/面 IRgbColor pColor = (IFillSymbol)pStyleGalleryItem.Item).Color as IRgbColor;/赋值填充的颜色 nudWidth.Value = Convert.ToDecimal(IFillSymbol)pStyleGalleryItem.Item).Outline.Width);/赋值边框宽度 pColor = (IFillSymbol)pStyleGalleryItem.Item).Out

12、line.Color as IRgbColor; btOutlineColor.BackColor = Color.FromArgb(pColor.Red, pColor.Green, pColor.Blue);/赋值边框颜色6. 将 pStyleGalleryItem 反映到 picture 上的方法:private void PreviewPicture() ISymbologyStyleClass pSymbologyStyle = axSymbologyControl1.GetStyleClass(axSymbologyControl1.StyleClass);/因为其有方法 Prev

13、iewStyle stdole.IPictureDisp picture = pSymbologyStyle.PreviewItem(pStyleGalleryItem, pictureBox1.Width, pictureBox1.Height);/建立实例 Image image = Image.FromHbitmap(new IntPtr(picture.Handle);/转成 C# 支持的 Image 实例 pictureBox1.Image = image;/赋值过去 将控件的操作操作反映到 picture 上:7. 点、线、面填充颜色传递:IRgbColor pColor = ne

14、w RgbColor();/颜色实例pColor.RGB = 255;tagRECT pTag = new tagRECT();/用于下面显示 ColorPalette 的位置pTag.left = btColor.PointToScreen(System.Drawing.Point.Empty).X;/按钮控件的左边全局横坐标pTag.bottom = btColor.PointToScreen(System.Drawing.Point.Empty).Y + btColor.Height;/按钮控件的下边全局纵坐标IColorPalette pColorPalette = new Color

15、Palette();pColorPalette.TrackPopupMenu(ref pTag, pColor, false, 0); /显示 ColorPalettepColor = pColorPalette.Color as IRgbColor;/获取选中的颜色Color color = Color.FromArgb(pColor.Red, pColor.Green, pColor.Blue);/将颜色转为 C# 颜色btColor.BackColor = color;switch (IFeatureLayer)pLayer).FeatureClass.ShapeType)/判断几何体样

16、式/点 (IMarkerSymbol)pStyleGalleryItem.Item).Color = pColor;/转为 IMarkerSymbol,注意改好后要在图片上显示/线 (ILineSymbol)pStyleGalleryItem.Item).Color = pColor;/转为 ILineSymbol/面 (IFillSymbol)pStyleGalleryItem.Item).Color = pColor;/转为 IFillSymbol8. 点的大小、线的宽度、填充边框宽度传递:switch (IFeatureLayer)pLayer).FeatureClass.ShapeTy

17、pe) (IMarkerSymbol)pStyleGalleryItem.Item).Size = Convert.ToDouble(nudWidth.Value);/点的大小,注意改后要在图片上显示 (ILineSymbol)pStyleGalleryItem.Item).Width = Convert.ToDouble(nudWidth.Value);/线的宽度 ILineSymbol pLineSymbol = (IFillSymbol)pStyleGalleryItem.Item).Outline;/实例化一个 linesymbol 然后赋值过去,直接赋值的话没有反应 pLineSym

18、bol.Width = Convert.ToDouble(nudWidth.Value);/赋值 (IFillSymbol)pStyleGalleryItem.Item).Outline = pLineSymbol;/在赋值给填充的外框9. 填充外边框颜色的传递:tagRECT ptagRECT = new tagRECT();ptagRECT.left = btOutlineColor.PointToScreen(System.Drawing.Point.Empty).X;ptagRECT.bottom = btOutlineColor.PointToScreen(System.Drawin

19、g.Point.Empty).Y + btOutlineColor.Height;pColorPalette.TrackPopupMenu(ref ptagRECT, pColor, false, 0);btOutlineColor.BackColor = Color.FromArgb(pColor.Red, pColor.Green, pColor.Blue);ILineSymbol pLineSymbol = (IFillSymbol)pStyleGalleryItem.Item).Outline;pLineSymbol.Color = pColor;(IFillSymbol)pStyle

20、GalleryItem.Item).Outline = pLineSymbol;PreviewPicture();颜色显示效果如下:10. 点的角度实现如下:(IMarkerSymbol)pStyleGalleryItem.Item).Angle = Convert.ToDouble(nudAngle.Value);11. 更多符号的实现:private void btMore_Click(object sender, EventArgs e) if (contextMenuMoreSymbolInitiated = false)/如果没有初始化,则首先初始化 string stylePath

21、 = Program Files (x86)ArcGISStyles/获取 styles 文件夹,并将里面 *.ServerStyle 文件赋值到数组中,用于加载 string strFiles = Directory.GetFiles(stylePath, *.ServerStyle); ToolStripMenuItem symbolContextMenuItem = new ToolStripMenuItemstrFiles.Length + 1;/定义菜单项,最后一个为另类 for (int i = 0; i strFiles.Length; i+) symbolContextMenu

22、Itemi = new ToolStripMenuItem();/首先新建,然后允许选中时是否有 checked 变化 symbolContextMenuItemi.CheckOnClick = true; symbolContextMenuItemi.Text = System.IO.Path.GetFileNameWithoutExtension(strFilesi);/将名字赋值给 text 属性,完整地址赋值给 name,便于加载 if (symbolContextMenuItemi.Text = ESRI) symbolContextMenuItemi.Checked = true;

23、/默认是加载的这个文件,所以默认选中 symbolContextMenuItemi.Name = strFilesi; symbolContextMenuItemstrFiles.Length = new ToolStripMenuItem();/最后一个菜单项 symbolContextMenuItemstrFiles.Length.Text = 更多工具 symbolContextMenuItemstrFiles.Length.Name = AddMoreSymbol contextMenuStrip1.Items.AddRange(symbolContextMenuItem);/将菜单项

24、添加到右键菜单中 contextMenuMoreSymbolInitiated = true;/将此值赋值为 true,以便之后不用执行这一部分了 contextMenuStrip1.Show(btMore.Location);/弹出右键菜单12. 点击右键菜单:private void contextMenuStrip1_ItemClicked(object sender, ToolStripItemClickedEventArgs e) ToolStripMenuItem pToolStripMenuItem = e.ClickedItem as ToolStripMenuItem;/首先获取点击项 if (pToolStripMenuItem.Name = )/最后一项,打开对话框,浏览想要打开的文件 if (openFileDialog1.ShowDialog() = DialogResult.OK) axSymbologyControl1.LoadStyleFile(openFileDialog1.FileName); axSymbologyControl1.Refresh(); else/其他项 if (pToolStripMenuIt

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2