ARCGIS PRO SDK 设置UI控件状态:启用/禁用

举例:

第一步:添加两个 Button 分别命名为Connect、Disconnect

第二步:nfig.daml添加状态和条件:在 DAML 中定义条件。请记住,条件存在于模块标记<modules>之外,下代码定义:Disconnected_condition初时为启用状态,Connected_condition初时为禁用状态。

复制代码
<conditions>
  <insertCondition id="Disconnected_condition">
    <not>
      <state id="Connected_state" />
    </not>
  </insertCondition>
  <insertCondition id="Connected_condition">
    <state id="Connected_state" />
  </insertCondition>
</conditions>

第三步:在控件标记 <controls>Button,引用定义的condition

复制代码
<controls>
 <button id="BtnConnect_Connect" caption="Connect" className="Connect" smallImage="pack://application:,,,/ArcGIS.Desktop.Resources;component/Images/GenericButtonBlue16.png" largeImage="pack://application:,,,/ArcGIS.Desktop.Resources;component/Images/GenericButtonBlue32.png" condition="Disconnected_condition">
  <tooltip heading="Tooltip">
	  使用此按钮连接
  </tooltip>"
 </button>
 <button id="BtnConnect_Disconnect" caption="Disconnect" className="Disconnect" smallImage="pack://application:,,,/ArcGIS.Desktop.Resources;component/Images/GenericButtonBlue16.png" largeImage="pack://application:,,,/ArcGIS.Desktop.Resources;component/Images/GenericButtonBlue32.png" condition="Connected_condition">
  <tooltip heading="Tooltip">
	  使用此按钮断开连接
  </tooltip>"
 </button>
</controls>

第四步:使用以下 API 方法激活或停用状态

在Button(Connect)的OnClick 写入:

c+代码

复制代码
FrameworkApplication.State.Activate("Connected_state");

vb

复制代码
FrameworkApplication.State.Activate("Connected_state")

在Button(Disconnect)的OnClick 写入:

c+

复制代码
FrameworkApplication.State.Deactivate("Connected_state");

vb

复制代码
FrameworkApplication.State.Deactivate("Connected_state")

效果如下:初时状态

点Connect后,效果:

再点Disconnect后,效果:

如:具体应用,按需求激活

相关推荐
HZZD_HZZD2 小时前
DL/T 645-2026新国标深度解读与智能电表协议适配实战:从帧结构变化到Java采集器升级的全链路改造方案
java·开发语言
山登绝顶我为峰 3(^v^)35 小时前
C/C++ 交叉编译方法
java·c语言·c++
一叶飘零_sweeeet5 小时前
Codex 与 Claude Code 深度拆解:两代 AI 编程智能体的技术本质与 Java 实战指南
java·ai·codex·claude code
Listen·Rain5 小时前
提示词和提示词模板
java·人工智能·spring boot
wuqingshun3141596 小时前
重写equals而不重写hashCode,会出什么问题?
java·开发语言
我今晚不熬夜6 小时前
Java语言实现Modbus协议通过用串口读取数据(以RTU为例)
java·网络协议
小锋java12347 小时前
Maven 4 要来了:15 年后,Java 构建工具迎来"彻底重构"
java·maven
卓怡学长7 小时前
w269基于spring boot + vue 候鸟监测数据管理系统
java·数据库·spring boot·spring·intellij-idea
孫治AllenSun7 小时前
【MDC】使用 MDC 封装一个 LogMdcUtil 工具类
java·spring boot·后端