当前位置: 首页 > news >正文

【ArcGIS Pro二次开发】(87):样式_Style的用法

.Stylx类型的文件即为样式库文件,保存了符号样式。


1、根据名字获取当前工程中的style

//获取当前工程中的所有style
var ProjectStyles = Project.Current.GetItems<StyleProjectItem>();

//根据名字找出指定的style
StyleProjectItem style = ProjectStyles.First(x => x.Name == "村规样式");

2、新建style

// 创建.stylx文件,注意后缀
string styleToCreate = @"C:\Temp\NewStyle.stylx";
StyleHelper.CreateStyle(Project.Current, styleToCreate);

3、加载style到当前工程

public Task AddStyleItemAsync(StyleProjectItem style, StyleItem itemToAdd)
{
  return QueuedTask.Run(() =>
  {
    //添加StyleItem
    style.AddItem(itemToAdd);
  });
}

4、从工程中移除style

public Task AddStyleItemAsync(StyleProjectItem style, StyleItem itemToAdd)
{
  return QueuedTask.Run(() =>
  {
    //移除StyleItem
    style.RemoveStyle(itemToAdd);
  });
}

5、给style添加符号项

public Task AddStyleItemAsync(StyleProjectItem style, StyleItem itemToAdd)
{
  return QueuedTask.Run(() =>
  {
    //添加StyleItem
    style.AddItem(itemToAdd);
  });
}

6、从style中移除符号项

public Task RemoveStyleItemAsync(StyleProjectItem style, StyleProjectItem style, StyleItem itemToRemove)
{
  return QueuedTask.Run(() =>
  {
    //移除StyleItem
    style.RemoveItem(itemToRemove);
  });
}

7、确定style是否与当前版本匹配

public async Task<bool> IsCurrent(string stylePath)
{
  //加载style
  StyleHelper.AddStyle(Project.Current, stylePath));
  StyleProjectItem style = Project.Current.GetItems<StyleProjectItem>().First(x => x.Path == stylePath);

  //获取目标属性IsCurrent
  return style.IsCurrent;
}

8、升级style

public async Task<bool> UpgradeStyleAsync(string stylePath)
{
  //加载style
  StyleHelper.AddStyle(Project.Current, stylePath));
  StyleProjectItem style = Project.Current.GetItems<StyleProjectItem>().First(x => x.Path == stylePath);

  // 如果是可以升级的话
  if (style.CanUpgrade)
  {
    StyleHelper.UpgradeStyle(style));
  }
}

9、在style中搜索特定的Item

//根据关键词搜索特定的SymbolStyleItem 
SymbolStyleItem item = (SymbolStyleItem)style.LookupItem(StyleItemType.PointSymbol, key);

//点符号
return style.SearchSymbols(StyleItemType.PointSymbol, searchString);

//线符号
return style.SearchSymbols(StyleItemType.LineSymbol, searchString);

//面符号
return await style.SearchSymbols(StyleItemType.PolygonSymbol, searchString);

//颜色
return style.SearchColors(searchString);

//色带
return await style.SearchColorRamps(searchString);

//指北针
return style.SearchNorthArrows(searchString);

//比例尺
return style.SearchScaleBars(searchString);

//图例
return style.SearchLegends(searchString);

 

相关文章:

  • 【Spring AI】基于SpringAI+Vue3+ElementPlus的QA系统实现(前端)
  • flutter ListView Item复用源码解析
  • MySQL Workbench工具 导出导入数据库
  • spring学习(spring-DI(setter注入、构造器注入、自动装配方式))
  • 在 CentOS 系统中配置交换空间(Swap)解决内存不足
  • Android和DLT日志系统
  • 13.推荐系统的性能优化
  • Go语言协程Goroutine高级用法(一)
  • 分布式版本控制系统---git
  • 【openresty服务器】:源码编译openresty支持ssl,增加service系统服务,开机启动,自己本地签名证书,配置https访问
  • 基于巨控GRM552YW-CHE:西门子S7-1200 PLC远程程序上下载与实时调试方案
  • spring cloud 使用 webSocket
  • 怎麼使用靜態住宅IP進行多社媒帳號管理
  • A4988一款带转换器和过流保护的 DMOS 微步驱动器的使用方式
  • 探索高通骁龙游戏超分辨率技术:移动游戏的未来
  • 20240911 光迅科技 笔试
  • ProxySQL构建PolarDB-X标准版高可用路由服务三节点集群
  • 理解WebGPU 中的 GPUDevice :与 GPU 交互的核心接口
  • 【时时三省】(C语言基础)简单的算法举例
  • leetcode-495.提莫攻击
  • 北京网站建设app开发/网站推广文章
  • 做网站为什么需要花钱/html网页制作模板
  • 做装修的网站有哪些内容/nba常规赛
  • 告白网站怎么做/杭州seo排名收费
  • 通信建设资质管理信息系统网站/广东东莞疫情最新情况
  • 织梦医院网站开发/百度统计app