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后,效果:

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

相关推荐
the beard9 分钟前
深入理解Java多线程:状态、安全、同步与通信
java·开发语言
pengzhuofan22 分钟前
Java设计模式-享元模式
java·设计模式·享元模式
灵魂猎手27 分钟前
10. Mybatis XML配置到SQL的转换之旅
java·后端·源码
掉鱼的猫28 分钟前
10分钟带你体验 Solon 的状态机
java
皮皮林55131 分钟前
从一个程序员的角度告诉你:“12306”有多牛逼?
java
AAA修煤气灶刘哥32 分钟前
被参数校验 / 日志逼疯?AOP:1 个切入点,所有方法自动加 buff
java·后端·面试
金銀銅鐵35 分钟前
[Java] functional interface 分类
java
AAA修煤气灶刘哥37 分钟前
ThreadLocal:后端仔的「线程私藏小仓库」,再也不用到处传 userId 啦!
java·后端·面试
摸鱼一级选手1 小时前
十大经典 Java 算法解析与应用
java·算法·排序算法
piaoyunlive1 小时前
Base64 编码优化 Web 图片加载:异步响应式架构(Java 后端 + 前端全流程实现)
java·前端·架构