【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)

就绪

关于页面

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1538702.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

如何使用麦肯锡方法做软件需求分析?

使用麦肯锡方法进行软件需求分析&#xff0c;可以借鉴其结构化思维、逻辑严密、以结果为导向的特点&#xff0c;来确保需求分析过程的高效性、准确性和全面性。 一、定义问题与目标 明确项目背景&#xff1a; 了解软件开发的目的、业务场景、用户需求等背景信息。 分析市场趋势…

数据结构——二叉搜索树、Map和Set

对于不同的数据结构&#xff0c;他们的使用场景是不一样的&#xff0c;map和set这两种数据结构主要用在搜索相关的场景中。学习这些之前我们先来了解一下二叉搜索树&#xff0c; 一、搜索树 1.1概念 二叉搜索树 又称 二叉排序树 &#xff0c;它或者是一棵空树&#xff0c;或者…

【Java】线程的同步——synchronized、ReentrantLock

对同一个线程&#xff0c;能否在获取到锁以后继续获取同一个锁? 答案是肯定可以获取同一个锁。因为JVM 允许同一个线程重复获取同一个锁&#xff0c;这种能被同一个线程反复获取的锁&#xff0c;就叫做可重入锁。 一、synchronized同步锁 在 Java中synchronized 同步锁…

开放的数据时代:Web3和个人隐私的未来

在数字化和信息化的时代&#xff0c;数据隐私成为了公众关注的焦点。随着Web3技术的兴起&#xff0c;个人隐私保护进入了一个新的阶段。Web3作为去中心化的互联网架构&#xff0c;提出了对数据控制和隐私保护的新方案。本文将探讨Web3如何影响个人隐私的未来&#xff0c;并分析…

Vue3中的Pinia——管理应用程序的全局状态

介绍Pinia Pinia 是 Vue.js 的状态管理库&#xff0c;主要用于管理应用程序的全局状态。它是 Vuex 的替代品&#xff0c;提供了更简单和更灵活的 API。Pinia 的主要作用包括&#xff1a; 1. 状态管理&#xff1a;Pinia 允许你在应用中集中管理状态&#xff0c;方便不同组件之…

leetcode:验证回文串

[题目链接] string func(string s)//先将大写转换成小写&#xff0c;并且去除空格等&#xff0c;只保留小写字母 {string tmp;string::iterator it s.begin();while (it ! s.end()){//大写字母if (*it < 90 && *it>65)//A-Z的ASCII码为65-90{tmp *it 32;//a-z…

Redis存储原理

前言 我们从redis服务谈起&#xff0c;redis是单reactor&#xff0c;命令在redis-server线程处理。还有若干读写IO线程负责IO操作&#xff08;redis6.0之后&#xff0c;Redis之pipeline与事务&#xff09;。此外还有一个内存池线程负责内存管理、一个后台文件线程负责大文件的关…

大数据Flink(一百一十八):Flink SQL水印操作(Watermark)

文章目录 Flink SQL水印操作&#xff08;Watermark&#xff09; 一、为什么要有WaterMark 二、​​​​​​​​​​​​​​Watermark解决的问题 三、​​​​​​​​​​​​​​代码演示 Flink SQL水印操作&#xff08;Watermark&#xff09; 一、​​​​​​​为什么…

《黑神话悟空》黄眉打法技巧图文攻略详解

​黄眉是黑神话悟空第三章的关底的boss&#xff0c;很多的玩家都非常的好奇这个boss到底要怎么打&#xff0c;这里小编就为大家带来了黄眉这个boss的打法&#xff0c;我们不要使用法术&#xff0c;只使用禁字诀就可以击败这个boss&#xff0c;详细的内容可以在这里进行了解和查…

DevEco Profiler调优工具(二)

一、Profiler调优模板 3、Snapshot Insight 4、CPU Insight 5、Frame Insight 6、Launch Insight

硬件(驱动开发)

一、OSC基本架构&#xff08;片上系统&#xff09; OSC&#xff08;On-chip System Control&#xff0c;片上系统控制&#xff09;基本架构通常涉及片上系统中的各个组件如何进行协调与控制&#xff0c;以实现高效的处理、通信和管理。OSC架构在现代微处理器和系统单芯片&…

WebApi开发中依赖注入和RESTful 详解

Web API 开发中的依赖注入和 RESTful 详解 在现代 Web API 开发中&#xff0c;依赖注入&#xff08;Dependency Injection, DI&#xff09;和 RESTful 架构 是两个极为重要的概念。本文将详细探讨它们的定义、应用场景及在 Web API 开发中的最佳实践。 一、依赖注入 (Depende…

[PICO VR眼镜]眼动追踪串流Unity开发与使用方法,眼动追踪打包报错问题解决(Eye Tracking/手势跟踪)

前言 最近在做一个工作需要用到PICO4 Enterprise VR头盔里的眼动追踪功能&#xff0c;但是遇到了如下问题&#xff1a; 在Unity里面没法串流调试眼动追踪功能&#xff0c;根本获取不到Device&#xff0c;只能将整个场景build成APK&#xff0c;安装到头盔里&#xff0c;才能在…

【java面向对象二】static(一)

文章目录 前言一、static修饰成员变量二、static修饰成员变量的应用场景三、static修饰成员方法四、搞懂main方法总结 前言 学习static修饰类变量&#xff0c;类方法&#xff0c;以及main方法的使用。 一、static修饰成员变量 static 叫静态&#xff0c;可以修饰成员变量&…

高密原型验证系统解决方案(下篇)

0 引言 我们在上篇中和大家探讨了用户在进行大规模 复杂 SoC 设计原型验证时在全局时钟及复位同步&#xff0c; 大规模设计分割以及高速接口与先进 Memory 控制 器 IP 验证等方面遇到的关键困难&#xff0c;并提出了相应的 解决方案帮助用户来克服这些困难。接下来我们会 和用户…

Django ORM(多表)

文章目录 前言一、关联关系模型二、一对多写入数据二、多对多写入数据二、跨表查询1.查找test 标签的文章2.查找作者名为 test 的文章及标签 三、跨表删除 前言 表与表之间的关系可分为以下三种&#xff1a; 一对一: 一对一关系表示一个模型的每个实例与另一个模型的每个实例…

华为OD机试 - 字符串划分(Java 2024 E卷 100分)

华为OD机试 2024E卷题库疯狂收录中&#xff0c;刷题点这里 专栏导读 本专栏收录于《华为OD机试&#xff08;JAVA&#xff09;真题&#xff08;E卷D卷A卷B卷C卷&#xff09;》。 刷的越多&#xff0c;抽中的概率越大&#xff0c;私信哪吒&#xff0c;备注华为OD&#xff0c;加…

Python | Leetcode Python题解之第416题分割等和子集

题目&#xff1a; 题解&#xff1a; class Solution:def canPartition(self, nums: List[int]) -> bool:n len(nums)if n < 2:return Falsetotal sum(nums)if total % 2 ! 0:return Falsetarget total // 2dp [True] [False] * targetfor i, num in enumerate(nums…

最低成本的游戏串流方案分享 如何自己打造云电脑?

今天教大家如何最低成本实现串流 出门在外也可以随时随地游玩端游大作 硬件准备&#xff1a;一台电脑 手机/平板一台 软件&#xff1a;Gameviewer远程 为啥不用moonlight等其他软件呢 因为设置公网穿透等复杂操作对小白来说不太友好 而GameViewer从安装到使用仅需一键 对比同类…

MATLAB系列07:输入/输入函数

MATLAB系列07&#xff1a;输入/输入函数 8. 输入/输入函数8.1 函数textread8.2 关于load和save命令的进一步说明8.3 MATLAB文件过程简介8.4 文件的打开和关闭8.4.1 fopen函数8.4.2 fclose函数 8.5 二进制 I/O 函数8.5.1 fwrite 函数8.5.2 fread函数 8.6 格式化 I/O 函数8.6.1 f…