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

【ArcGISPro】配置模块

ArcGIS Pro 配置类似于加载项,但提供了扩展应用程序的其他方法。它可以帮助您设计更贴近您组织品牌和工作流的 ArcGIS Pro 版本

托管配置是比 Add-in 更高级别的自定义。

配置可以提高加载项安全级别并添加非管理员指定的已知文件夹。

配置可以提供比插件更广泛的自定义以及对 DAML 的运行时修改 - 可能基于登录的用户角色。

每个 ArcGIS Pro 会话只能运行一个配置(即解决方案),即只有一个配置可以处于活动状态

关键配置

  • 创建自定义初始屏幕和自定义起始页
  • 更改应用程序图标、应用程序名称和标题栏文本
  • 重新排列或删除不常用的控件;插入新控件
  • 在启动期间注入逻辑以检查许可或根据用户角色更改用户界面
  • 控制加载的加载项
  • 过滤器命令 (命令通知和禁用它们的选项 )。

创建配置

启动

初始屏幕

起始页

生成的配置文件

路径

C:\Users\<UserName>\Documents\ArcGIS\AddIns\ArcGISPro\Configurations

安装配置

双击即可安装

配置文件结构

内部结构与加载项相同。

包含:

  • 一个 DAML(桌面体系结构标记语言)文件,用于描述配置及其自定义
  • 编译代码(用于配置管理器及其关联模块)
  • 图像
  • 资源
  • 任何第三方程序集

更改配置

使用方式

{ArcGISPro安装路径}\ArcGISPro.exe /config:配置文件的名称不带后缀

注册表指定配置

DAML中作用

声明

配置元素

每个 DAML 只能有一个 Configuration 元素。Configuration 元素有四个可选属性:blockAddInTabblockCustomizeDialogblockPerfMeter 和 checkForUpdatesAtStartup

blockAddInTab

默认值:false

设置为 true 时,该属性将隐藏功能区中的 Add-In 选项卡。

blockCustomizeDialog

默认值:false

当设置为 true 时,该属性将从 ArcGIS Pro 选项属性表中删除“自定义功能区”选项。

blockPerfMeter

默认值:false

当设置为 true 时,该属性将阻止用户启动 ArcGIS Monitor。

CheckForUpdatesAtStartup

默认值:true

当设置为 false 时,该属性将取消选中 ArcGIS Pro Backstage 关于选项卡中的“启动时检查更新”复选框。

配置子元素

配置管理器

 //ConfigurationManager契约public class ArcGIS.Desktop.Framework.Contracts.ConfigurationManager {//在运行时得到一个替换的DAML文件。protected internal virtual string RuntimeDamlFile { get; }//获取新的应用程序名称protected internal virtual string ApplicationName { get; }//获取标题栏文本(3.0新功能)protected internal virtual string TitleBarText { get; }//获取新的应用程序图标protected internal virtual ImageSource Icon { get; }//在应用程序初始化时调用。表示现在与传送门通信是安全的。此时还没有处理DAML记录。//取消信号:错误信号出现问题。申请将关闭。protected internal virtual void OnApplicationInitializing(CancelEventArgs cancelEventArgs);//当应用程序完全初始化时调用。protected internal virtual void OnApplicationReady();//CommandFilter -赋予配置禁用命令的能力。////cmdID:执行的命令的DAML ID。//moduleID:命令的父模块DAML ID。protected internal virtual bool OnCanExecuteCommand(string cmdID, string moduleID);//配置在运行时提供DAML的配置机会。//// 返回:在XML字符串上以表单的形式处理的DAML。protected internal virtual string OnCreateDaml();//配置提供要在快速访问工具栏中显示的命令列表的机会。它发生在开始页关闭并且打开第一个项目之后。//// 返回:在QAT使用的命令列表protected internal virtual List<Tuple<string, bool>> OnCreateQuickAccessToolbar();//CommandFilter -赋予配置能够拒绝命令执行的能力//cmdID:执行命令的DAML ID。//moduleID:命令的父模块DAML ID。protected internal virtual bool OnExecuteCommand(string cmdID, string moduleID);// 允许配置将一些自定义用户界面注入到about页面。//// 返回:添加到about页面的元素。protected internal virtual FrameworkElement OnShowAboutPage();//配置的自定义喷溅屏幕。//// 返回:在启动过程中显示的自定义窗口。protected internal virtual Window OnShowSplashScreen();//应用程序启动后显示的自定义起始页(着陆页)。//// 返回:起始页protected internal virtual FrameworkElement OnShowStartPage();//配置在处理DAML之前操作它的最后一次机会。////database:整个合并的DAML数据库。////Remarks://  配置可能会发现有必要编辑原始数据库以获得所需的外观。例如,一个配置可能想要删除系统中除了自己的选项卡之外的所有选项卡。这是XML形式的原始DAML数据库,编辑时要格外小心。protected internal virtual void OnUpdateDatabase(XDocument database);//许可验证////Remarks://  使配置有机会执行自己的许可证检查。返回错误信号,表示发生了许可问题。应用程序将关闭。protected internal virtual bool OnValidateLicense();
}

配置回调

配置回调对应ArcGIS Pro 应用程序三个状态:预初始化、初始化和就绪。

在预初始化状态下,没有加载 Pro API 模块,也没有 UI。

在初始化过程中,将创建 Pro WPF 应用程序并初始化任何门户或联机连接。

最后,在准备就绪期间,应用程序已完全加载。应用程序状态仅向前移动。一旦应用程序转换为 ready 状态,它将在会话期间保持 ready 状态。

预初始化

在该阶段(预初始化)由于尚未加载任何 Pro 扩展程序集,因此在预初始化期间进行任何 Pro API 调用都会使应用程序崩溃。即请勿:

  • 调用任何 Pro API 方法以包括QueuedTask.Run
  • 访问任何 Pro WPF 资源(样式、画笔、颜色、图标、图像)
  • 订阅任何 Pro 事件(这包括您的 ConfigurationManager 构造函数中)
  • 进行任何依赖于 UI 线程的 WPF 调用(例如Dispatcher.Invoke)
  • 显示任何自定义 UI(例如 Message Boxes)
自定义初始屏幕 (OnShowSplashScreen)

 

初始化

在初始化期间执行以下操作:

  • 使用 Pro API 调用门户或在线调用(不使用 QueuedTask)
  • 提供自定义 DAML(如果需要)
  • 修改 DAML 数据库(如果需要)
  • 如果您需要自定义逻辑和 UI 来启动 Pro 会话,请提供自定义起始页
  • 在起始页中使用 Pro WPF 样式等
  • 在起始页逻辑中调用任何 Pro API 方面(需要时使用 QueuedTask)

在初始化期间,请勿:

  • 调用任何不在 中的Pro API方法以包含.ArcGIS.Desktop.CoreQueuedTask.Run
  • 尝试访问任何插件、窗格、停靠窗格或任何 UI 元素或其他模块。
  • 订阅任何 Pro 活动
  • 访问除起始页之外的任何 Pro WPF 资源(样式、画笔、颜色、图标、图像)。
  • 进行依赖于 UI 线程的任何 WPF 调用(例如 )。Dispatcher.Invoke
  • 显示任何自定义 UI
OnApplicationInitializing 

最重要的是用于在线和门户通信的 API

应用程序名称(ApplicationName)

标题栏文本(TitleBarText)

就绪

关于页面

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 2024/9/21 leetcode 19题 24题
  • 线性规划------ + 案例 + Python源码求解(见文中)
  • C++类和对象(4)
  • ElementUI 快速入门:使用 Vue 脚手架搭建项目
  • springboot注册和注入组件方式概览
  • Flutter 约束布局
  • unix中的进程标识以及使用场景
  • Unity数据持久化4——2进制
  • 【CSS in Depth 2 精译_031】5.3 Grid 网格布局的两种替代语法
  • cpp中的namespace详解
  • 【C++】list详解及模拟实现
  • 软RAID查看状态mdstat的原理
  • 跨越数据孤岛:打造支持多种数据库的Java智能查询引擎及其商业前景
  • C# winforms DataGridView设置数据源自动显示表格
  • JAVA基础:Lock锁
  • Flannel解读
  • java2019面试题北京
  • PAT A1120
  • Redis 懒删除(lazy free)简史
  • sessionStorage和localStorage
  • storm drpc实例
  • v-if和v-for连用出现的问题
  • vue从创建到完整的饿了么(18)购物车详细信息的展示与删除
  • 安卓应用性能调试和优化经验分享
  • 百度地图API标注+时间轴组件
  • 从输入URL到页面加载发生了什么
  • 函数式编程与面向对象编程[4]:Scala的类型关联Type Alias
  • 解析 Webpack中import、require、按需加载的执行过程
  • 推荐一个React的管理后台框架
  • 我有几个粽子,和一个故事
  • 项目管理碎碎念系列之一:干系人管理
  • 这几个编码小技巧将令你 PHP 代码更加简洁
  • 基于django的视频点播网站开发-step3-注册登录功能 ...
  • ​经​纬​恒​润​二​面​​三​七​互​娱​一​面​​元​象​二​面​
  • ​云纳万物 · 数皆有言|2021 七牛云战略发布会启幕,邀您赴约
  • # Java NIO(一)FileChannel
  • (1)(1.11) SiK Radio v2(一)
  • (el-Date-Picker)操作(不使用 ts):Element-plus 中 DatePicker 组件的使用及输出想要日期格式需求的解决过程
  • (floyd+补集) poj 3275
  • (Redis使用系列) SpringBoot中Redis的RedisConfig 二
  • (保姆级教程)Mysql中索引、触发器、存储过程、存储函数的概念、作用,以及如何使用索引、存储过程,代码操作演示
  • (二)换源+apt-get基础配置+搜狗拼音
  • (附源码)计算机毕业设计SSM在线影视购票系统
  • (每日一问)设计模式:设计模式的原则与分类——如何提升代码质量?
  • (亲测有效)推荐2024最新的免费漫画软件app,无广告,聚合全网资源!
  • (入门自用)--C++--抽象类--多态原理--虚表--1020
  • (新)网络工程师考点串讲与真题详解
  • (中等) HDU 4370 0 or 1,建模+Dijkstra。
  • .NET Conf 2023 回顾 – 庆祝社区、创新和 .NET 8 的发布
  • .NET Framework 3.5中序列化成JSON数据及JSON数据的反序列化,以及jQuery的调用JSON
  • .net 按比例显示图片的缩略图
  • .NET6 开发一个检查某些状态持续多长时间的类
  • /var/log/cvslog 太大
  • @AliasFor 使用
  • @Autowired @Resource @Qualifier的区别