ArcEngine 样式对象StyleGallery的使用详解

简介:         ArcMap里面存在很多预定义的样式对象,比如颜色、图例和各种符号等。用户也可以新建自己的样式对象,来满足实际开发的特殊需要。在进行arcgis engine 二次开发的过程中,用户可直接使用这些样式对象,以丰富制图内容,简化制图过程。

        ArcMap里面存在很多预定义的样式对象,比如颜色、图例和各种符号等。用户也可以新建自己的样式对象,来满足实际开发的特殊需要。在进行arcgis engine 二次开发的过程中,用户可直接使用这些样式对象,以丰富制图内容,简化制图过程。

        样式通常按照功能被分为多个类型。这些样式都被保存在一个style文件中,读者可在<ArcGIS 安装目录>\Bin\Styles 文件夹中寻找到这些Style文件。一个样式由多个样式条目(StyleGalleryItem)组成,这些Style条目提供了得到单个地图元素或符号的方法。相似的条目被组织成样式类(StyleGalleryClass)。一个样式类中的条目可依据类型的差异进行分组(Categories)。在AE中样式类需要和AxSymbologyControl控件配合使用。

       StyleGallery是一个与文档对象相关的Style集合对象,它代表了一个Style文件,利用该对象,开发人员可以将一个style文件的样式取出来供系统使用。StyleGallery 类默认实现了IStyleGallery接口,该接口定义了操作一个样式中的种类、样式类和样式条目的方法和属性,如添加、删除、更新样式条目和载入新的Style文件。

       Class属性可使用一个给定的索引值得到Style文件中的某个StyleGalleryClass对象;ClassCount属性用于返回这个Style对象中所有样式类数目;Categories属性可返回一个样式类中的样式种类;Items 属性可以在给定样式类名、Style文件路径和种类名称的情况下,返回符合这些条件的样式条目集对象。下面的示例代码用于获取样式条目。

    private void  StyleGalleryDemo()
        {
            IStyleGallery pStyleGallery = new StyleGalleryClass();
            pStyleGallery.LoadStyle(@"C:\Program Files\ArcGIS\Styles\ESRI.Style", "");
            for(int i=0;i<=pStyleGallery.ClassCount;i++)
            {
                MessageBox.Show(pStyleGallery.get_Class(i).Name);
            }
            IEnumStyleGalleryItem pEnumStyleGalleryItem;
            IStyleGalleryItem pStyleGalleryItem;
            pEnumStyleGalleryItem = pStyleGallery.get_Items("Scale Bars", @"C:\Program Files\ArcGIS\Styles\ESRI.Style", "hollowscalebar");
            pEnumStyleGalleryItem.Reset();
            pStyleGalleryItem = pEnumStyleGalleryItem.Next();
            while(pStyleGalleryItem !=null)
            {
                MessageBox.Show(pStyleGalleryItem.Name);
                pStyleGalleryItem = pEnumStyleGalleryItem.Next();
            }
        }

       StyleGallery对象还实现了IStyleGalleryStorage接口,该接口提供了在StyleGallery对象中获得一个Style文件指针的方法,也提供了让开发人员能够添加或删除Style文件的方法。

       DefaultStylePath属性将会返回Style文件的缺省目录;TargetFile属性允许开发人员新建一个Style文件作为添加、删除和更新样式条目的目标文件;CanUpdate用于确定是否允许改变一个Style文件。

      下面是一个新建Style文件并插入一个StyleGalleryItem的例子,执行完这段代码后,在D盘目录下将出现一个test.style文件,若使用ArcMap样式管理器来查看该文件,在ArcMap的Colors样式类中,将会看到所添加的颜色样式条目。使用该函数须添加引用using ESRI.ArcGIS.Framework。

private void AddStyleItem()
        {
            IStyleGallery pStyleGallery=new StyleGalleryClass();
            IRgbColor pRgbColor = new RgbColorClass();
            pRgbColor.Red = 255;
            pRgbColor.Green = 0;
            pRgbColor.Blue = 0;
            IStyleGalleryItem pStyleItem = new StyleGalleryItemClass();
            pStyleItem.Name = "Red";
            pStyleItem.Category = "Default";
            pStyleItem.Item = pRgbColor;
            IStyleGalleryStorage pStyleStorage = pStyleGallery as IStyleGalleryStorage;
            pStyleStorage.TargetFile = @"D:\test.style";
            pStyleGallery.AddItem(pStyleItem);
        }


   希望这篇文章能够帮助到你们!也希望得到你们的支持!

欢迎关注微信公众号“GIS带我奔跑”获取更多GIS前沿开发技术、行业应用和最新资讯。




相关文章
|
7月前
|
存储 C# 开发者
C# | 通过反射将对象属性展示在TreeView中
在编程过程中,我们经常需要处理复杂的对象和数据结构。将这些数据结构展示在UI界面上是很有用的,可以帮助开发者更好地理解和分析数据。 而TreeView作为一种常见的控件,可以以树状结构的方式展示数据,非常适合用于展示层次化的对象。 本文将介绍如何使用TreeView控件展示一个对象,并且可以动态处理对象中的属性和子对象。通过本文的学习,您将学会如何更好地理解和展示数据,提高编程效率。
80 0
C# | 通过反射将对象属性展示在TreeView中
|
C# 图形学
Winform控件优化之Paint事件实现圆角组件(提取绘制圆角的扩展方法)
Paint事件方法中实现圆角控件不要通过事件参数`e.ClipRectangle`获取控件区域范围,原因见最后介绍;注意设置控件背景透明(参见[Winform控件优化之背景透明那些事2...
854 0
Winform控件优化之Paint事件实现圆角组件(提取绘制圆角的扩展方法)
|
前端开发
Delphi绘图功能[2] —— 窗体的绘图属性、圆弧类图形、获取Canvas对象(ClientRect解析)
Delphi绘图功能[2] —— 窗体的绘图属性、圆弧类图形、获取Canvas对象(ClientRect解析)
542 0
Delphi绘图功能[2] —— 窗体的绘图属性、圆弧类图形、获取Canvas对象(ClientRect解析)
|
C++
duilib corner属性的贴图技巧——让图片自动贴到控件的的某一边或者一角并自适应控件的大小
转载请说明原出处,谢谢~~          Duilib给控件贴图功能可以附带多个属性,各个属性的配合可以达到许多效果。以下是duilib支持的所有贴图属性: 贴图描述:          Duilib的表现力丰富很大程度上得益于贴图描述的简单强大。
1829 0
【MATLAB】基本绘图 ( 图形属性 | 绘图对象 | 图形属性界面 | 坐标轴属性 | 线属性 | 文本属性 | 图形属性设置策略 )(一)
【MATLAB】基本绘图 ( 图形属性 | 绘图对象 | 图形属性界面 | 坐标轴属性 | 线属性 | 文本属性 | 图形属性设置策略 )(一)
190 0
【MATLAB】基本绘图 ( 图形属性 | 绘图对象 | 图形属性界面 | 坐标轴属性 | 线属性 | 文本属性 | 图形属性设置策略 )(一)
【MATLAB】基本绘图 ( 图形属性 | 绘图对象 | 图形属性界面 | 坐标轴属性 | 线属性 | 文本属性 | 图形属性设置策略 )(二)
【MATLAB】基本绘图 ( 图形属性 | 绘图对象 | 图形属性界面 | 坐标轴属性 | 线属性 | 文本属性 | 图形属性设置策略 )(二)
322 0
【MATLAB】基本绘图 ( 图形属性 | 绘图对象 | 图形属性界面 | 坐标轴属性 | 线属性 | 文本属性 | 图形属性设置策略 )(二)
|
C#
给WPF文字加多条修饰线
原文:给WPF文字加多条修饰线 这是上篇WPF中的文字修饰——上划线,中划线,基线与下划线 最后留给朋友思考的问题。 效果图: XAML代码:                                     ...
868 0
|
C# API
深入WPF中的图像画刷(ImageBrush)之1——ImageBrush使用举例
原文:深入WPF中的图像画刷(ImageBrush)之1——ImageBrush使用举例 昨天我在《简述WPF中的画刷(Brush)  》中简要介绍了WPF中的画刷的使用。
2086 0
|
C#
WinForm和WPF颜色对象的转换
原文:WinForm和WPF颜色对象的转换 版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/huangli321456/article/details/52956846 ...
877 0
|
C# 前端开发 容器
WPF中如何在文本外面加虚线外框
原文:WPF中如何在文本外面加虚线外框     昨天突然被问到如何在wpf里面给一段文本加个虚线外框,由于有一段时间没玩wpf了,一时还真没想出来,虽然大概有个思路,但是也不保证正确。今天回到家,闲着没事情也就随便试验了一下。
1071 0