【ArcGISPro】配置模块

devtools/2024/11/14 1:24:25/

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)

就绪

关于页面


http://www.ppmy.cn/devtools/115588.html

相关文章

linux系统蓝牙框架

一、前言 本文主要从大框架上介绍linux系统蓝牙功能架构&#xff0c;包括硬件架构以及软件架构。本文将从如下方面展开&#xff1a; 1.硬件选型及连接 2.软件架构。 二、硬件架构及连接 市面上带蓝牙功能的消费电子主要是采用soc 无线模组的硬件架构。很多无线模组都集成了…

redisson实现分布式锁

文章目录 什么是redisson?主要特点主要功能使用场景开发者友好总结 redisson实现分布式锁1. 添加依赖2. 配置 RedissonClient3. 获取并使用锁注意事项 锁超时处理1. 自动超时设置2. 动态设置超时时间3. 监控锁的状态4. 使用可重入锁注意事项 看门狗机制如何工作&#xff1f;实…

上海市计算机学会竞赛平台2024年7月月赛丙组子集归零

题目描述 给定 nn 个数字 a1,a2,,…,ana1​,a2​,,…,an​&#xff0c;请统计能从 11 到 nn 中&#xff0c;选出多少种不同的下标子集&#xff0c;使得这些下标对应的数字之和等于 00。 注意空集与全集也是子集中的一种。 输入格式 第一行&#xff0c;单个整数表示 nn第二行…

状态模式:将对象行为与状态解耦

状态模式&#xff08;State Pattern&#xff09;是一种行为设计模式&#xff0c;它允许对象在其内部状态改变时改变其行为&#xff0c;使对象看起来好像修改了其类。 状态模式的核心思想是将对象的行为封装在不同的状态对象中&#xff0c;每个状态对象都代表了对象在某一特定状…

【25.5】C++智能交友系统

实现男生女生自动匹配的功能 void autoPair(const vector <Boy>& boys, const vector <Girl>& girls) {for (int i 0; i < boys.size(); i) {for (int j 0; j < girls.size(); j) {if (boys[i].satisfied(girls[j]) && girls[j].satisfie…

Git常用命令详解

Git 是一个功能强大的版本控制系统&#xff0c;以下是一些常用的 Git 命令及其解释和案例&#xff1a; 1、配置 git config --global user.name "Your Name"&#xff1a;配置全局用户名。 git config --global user.email "emailexample.com&#xff1a;配置全…

spring boot 定时器配置

1、首先在主类上加EnableScheduling注解 2、在应用类上加Scheduled注解&#xff0c;同时记得添加spring的组件注解Component&#xff0c;不然无法成功

Qt:静态局部变量实现单例(附带单例使用和内存管理)

前言 本文主要写静态局部变量实现的单例以及单例的释放&#xff0c;网上很多教程只有单例的创建&#xff0c;但是并没有告诉我们单例的内存管理&#xff0c;这就很头疼。静态局部变量实现的单例应该是最简单的单例&#xff0c;而且不需要内存管理。 正文 静态局部变量单例&a…