【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 元素有四个可选属性:blockAddInTab、blockCustomizeDialog、blockPerfMeter 和 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.Core
QueuedTask.Run
- 尝试访问任何插件、窗格、停靠窗格或任何 UI 元素或其他模块。
- 订阅任何 Pro 活动
- 访问除起始页之外的任何 Pro WPF 资源(样式、画笔、颜色、图标、图像)。
- 进行依赖于 UI 线程的任何 WPF 调用(例如 )。
Dispatcher.Invoke
- 显示任何自定义 UI
OnApplicationInitializing
最重要的是用于在线和门户通信的 API