【ArcGIS Pro二次开发】(3):UI管理_显示隐藏Tab、Group、Control等控件

这篇具有很好参考价值的文章主要介绍了【ArcGIS Pro二次开发】(3):UI管理_显示隐藏Tab、Group、Control等控件。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

在ArcGIS Pro工作中,有时候会涉及到工具栏UI的管理,比如,打开模型构建器时,工具栏才会出现新的选项卡(Tab)【ModelBuilder】,工程未做更改,则【保存】按钮显示灰色不可用。

【ArcGIS Pro二次开发】(3):UI管理_显示隐藏Tab、Group、Control等控件

下面以一个小例子来学习一下。


一、新建项目,并添加示例用的控件

1、新建一个项目,命名为【UIManager】,再添加4个ArcGIS Pro 按钮【Show_Button、Show_Tab、Show_Group、Test_Button】。具体操作可以参考我的上一篇笔记:

【ArcGIS Pro二次开发】(2):创建一个Add-in项目https://blog.csdn.net/xcc34452366/article/details/128985113?spm=1001.2014.3001.5501

2、更新Config.daml文件的</modules>模块,添加2个Tab【UI管理器、示例选项卡】,并把4个按钮分为2组【UI管理组、示例组】。更新后的</modules>代码如下:

<modules>
    <insertModule id="UIManager_Module" className="Module1" autoLoad="false" caption="Module1">
      <!-- 选项卡-->
      <tabs>
        <!-- UI管理选项卡,下面2个组-->
        <tab id="UIManager_Tab_UI" caption="UI管理器">
          <group refID="UIManager_Group_UI"/>
          <group refID="UIManager_Group_Test"/>
        <!-- 示例选项卡-->
        </tab>
        <tab id="UIManager_Tab_Test" caption="示例选项卡">
        </tab>
      </tabs>
      <!-- 组-->
      <groups>
        <!-- UI管理组,下面3个管理按钮-->
        <group id="UIManager_Group_UI" caption="UI管理组" appearsOnAddInTab="false">
          <button refID="UIManager_Show_Button" size="large" />
          <button refID="UIManager_Show_Tab" size="large" />
          <button refID="UIManager_Show_Group" size="large" />
        </group>
        <!-- 示例组,下面1个示例按钮-->
        <group id="UIManager_Group_Test" caption="示例组" appearsOnAddInTab="false">
          <button refID="UIManager_Test_Button" size="large" />
        </group>
      </groups>
      <!-- 控件-->
      <controls>
        <!-- 【Button】显示按钮-->
        <button id="UIManager_Show_Button" caption="显示按钮" className="Show_Button" loadOnClick="true" smallImage="pack://application:,,,/ArcGIS.Desktop.Resources;component/Images/GenericButtonBlue16.png" largeImage="pack://application:,,,/ArcGIS.Desktop.Resources;component/Images/GenericButtonBlue32.png">
          <tooltip heading="Tooltip Heading">Tooltip text<disabledText /></tooltip>
        </button>
        <!-- 【Button】显示选项卡-->
        <button id="UIManager_Show_Tab" caption="显示选项卡" className="Show_Tab" loadOnClick="true" smallImage="pack://application:,,,/ArcGIS.Desktop.Resources;component/Images/GenericButtonBlue16.png" largeImage="pack://application:,,,/ArcGIS.Desktop.Resources;component/Images/GenericButtonBlue32.png">
          <tooltip heading="Tooltip Heading">Tooltip text<disabledText /></tooltip>
        </button>
        <!-- 【Button】显示组-->
        <button id="UIManager_Show_Group" caption="显示组" className="Show_Group" loadOnClick="true" smallImage="pack://application:,,,/ArcGIS.Desktop.Resources;component/Images/GenericButtonBlue16.png" largeImage="pack://application:,,,/ArcGIS.Desktop.Resources;component/Images/GenericButtonBlue32.png">
          <tooltip heading="Tooltip Heading">Tooltip text<disabledText /></tooltip>
        </button>
        <!-- 【Button】示例按钮-->
        <button id="UIManager_Test_Button" caption="示例按钮" className="Test_Button" loadOnClick="true" smallImage="pack://application:,,,/ArcGIS.Desktop.Resources;component/Images/GenericButtonBlue16.png" largeImage="pack://application:,,,/ArcGIS.Desktop.Resources;component/Images/GenericButtonBlue32.png">
          <tooltip heading="Tooltip Heading">Tooltip text<disabledText /></tooltip>
        </button>
      </controls>
    </insertModule>
  </modules>

调试效果如下图:

【ArcGIS Pro二次开发】(3):UI管理_显示隐藏Tab、Group、Control等控件


二、添加条件控制

1、在</AddInInfo>模块和</modules>模块之间插入以下代码,目的是添加3个条件控制,分别控制【示例选项卡、示例组和2个显示按钮】的显示和隐藏:

<conditions>
    <!-- 条件控制器 -->
    <insertCondition id="Manager_ShowButton" caption="显示按钮">
      <!-- Manager_ShowButton的结果(True or False)会受到下面这个state的影响 -->
      <!-- 控制按钮显示 -->
      <state id="button_state" />
    </insertCondition>
    <insertCondition id="Manager_ShowTab" caption="显示选项卡">
      <!-- 控制选项卡显示 -->
      <state id="tab_state" />
    </insertCondition>
    <insertCondition id="Manager_ShowGroup" caption="显示组">
      <!-- 控制组显示 -->
      <state id="group_state" />
    </insertCondition>
  </conditions>

2、在要执行显示、隐藏的控件里增加condition属性,并把上面</conditions>模块里相对应的id赋给它。

【ArcGIS Pro二次开发】(3):UI管理_显示隐藏Tab、Group、Control等控件

3、打开【Module1.cs】,在Overrides行的下面添加如下代码,调用系统监听:

public static void StateCotroller(string stateID)
        {
            if (FrameworkApplication.State.Contains(stateID))
            {
                FrameworkApplication.State.Deactivate(stateID);
            }
            else
            {
                FrameworkApplication.State.Activate(stateID);
            }
        }

三、重写按钮的OnClick事件,调用控制器

分别打开【Show_Button.cs、Show_Tab.cs、Show_Group.cs】3个文件,分别重写OnClick事件,代码如下:

Module1.StateCotroller("button_state");
Module1.StateCotroller("tab_state");
Module1.StateCotroller("group_state");

四、调试

点击工具栏的【调试】按钮打开的ArcGIS Pro界面如下,默认情况下,示例选项卡、示例组被隐藏,2个显示按钮被禁用:

【ArcGIS Pro二次开发】(3):UI管理_显示隐藏Tab、Group、Control等控件

点示【显示按钮】,则右边2个按钮变为可用,再次点击,则禁用。

点示被启用的【显示选项卡】,则选项卡界面上出现一个【示例选项卡】,再次点击,则隐藏。

点示被启用的【显示组】,则出现一个【示例组】,再次点击,则隐藏。

【ArcGIS Pro二次开发】(3):UI管理_显示隐藏Tab、Group、Control等控件

以上就是这个小例子的全部效果。


五、工程文件分享

最后,放上工程文件的链接:

UIManagerhttps://pan.baidu.com/s/1EEBSWmTuRGbgwMys99e5xw?pwd=r023文章来源地址https://www.toymoban.com/news/detail-477960.html

到了这里,关于【ArcGIS Pro二次开发】(3):UI管理_显示隐藏Tab、Group、Control等控件的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【ArcGIS Pro二次开发】(63):批量更改字段别名

    在我工作中遇到的大多数图斑,字段名称一般是英文,字段别名是中文,使用起来是比较方便的。 但有时候也会遇到一些不一样的情况,不知是经过了怎样的处理,图斑的字段别名被修改成了和字段名称一样的英文,这样就很理解字段名称的意思,特别是其它专业、不熟悉的

    2024年02月11日
    浏览(81)
  • 【ArcGIS Pro二次开发】(52):布局导出图片(批量)

    在ArcGIS Pro中设定好布局后,可以直接导出为各种类型的图片。 这是很基本的功能,但是如果你的布局很多,一张一张导图就有点费劲。 之前有网友提出希望可以批量导图,要实现起来并不难,于是就做了这个工具。 如上图所示,点击【制图相关】面板下【导出布局(批量)

    2024年02月16日
    浏览(54)
  • 【ArcGIS Pro二次开发】(81):文本符号_CIMTextSymbol

    CIMTextSymbol是用于绘制文本图形注释的文本符号。 0、属性 Angel 文本符号的放置角度 BlockProgression 多行文本的堆叠方向 Callout 引线 DrawSoftHyphen 连字符 FlipAngle 文本翻转(镜像)到位的角度 FontEffects 上下标 FontEncoding 获取文字的Encoding FontFamilyName 字体名称 FontStyleName 字形样式,例

    2024年02月20日
    浏览(48)
  • 【ArcGIS Pro二次开发】(36):度分秒转十进制度

    经纬度坐标的表达方式比较常用的一般有2种,【度分秒和十进制度】。 在成果展示中,以【度分秒】居多,但如果要将坐标导入ArcGIS中,则一般需要用到【十进制度】,这个转换可以在Excel中进行,也可以在ArcGIS中的字段计算里计算,但都有点小麻烦。 为了更方便的转换,

    2024年02月09日
    浏览(52)
  • 【ArcGIS Pro二次开发】(60):按图层导出布局

    在使用布局导图时,会遇到如下问题: 为了切换图层和导图方便,一般情况下,会把相关图层做成图层组。 在导图的时候,如果想要按照图层组进行分开导图,如上图,想导出【现状图、规划图、管控边界】3张图,系统并没有方便的工具。 于是就自己做一个。   如上图所

    2024年02月12日
    浏览(47)
  • 【ArcGIS Pro二次开发】(56):界址点导出Excel

    界址点成果表是地籍测绘中的一种表格,用于记录地块的界址点坐标和相关属性信息。 这个工具的目的就是为了将地块要素导出为界址点成果表。 如上图所示,在【数据处理】组—【Excel相关】面板下,点击【界址点导出Excel】工具。 在弹出的工具框中,分别输入参数: 1、

    2024年02月14日
    浏览(38)
  • 【ArcGIS Pro二次开发】(58):数据的本地化存储

    在做村规工具的过程中,需要设置一些参数,比如说导图的DPI,需要导出的图名等等。 每次导图前都需要设置参数,虽然有默认值,但还是需要不时的修改。 在使用的过程中,可能会有一些常用的参数,希望能够保存下来,而不是每次都去修改默认值。 于是,想到可以将这

    2024年02月14日
    浏览(45)
  • 【ArcGIS Pro二次开发】(50):布局(Layout)的基本操作

    ArcGIS Pro SDK中的布局(Layout)是用于创建和编辑打印布局的一组功能。 Layout是打印布局的容器,它可以包含多个元素,例如地图框、文本框、图例、比例尺等。 Layout中包含多种元素,比较重要的有:地图(MapFrameElement)、文本(TextElement)、图片(PictureElement)、图例(LegendElement)等。

    2024年02月16日
    浏览(49)
  • 【ArcGIS Pro二次开发】(45):手搓一个工具执行进度框

    我在之前做的工具中,UI这部分基本没怎么深入,都是直接用现成的控件。 其中有一个问题比较突出,就是没有工具执行的进度框提示。曾经也用过系统自带的信息提示框和进度条,但太简陋,确实不好用。于是就想抄一个进度框来用,自然而然想到了ArcGIS中地理工具执行时

    2024年02月13日
    浏览(53)
  • 【ArcGIS Pro二次开发】(53):村规制表、制图【福建省】

    这篇算是村规入库的一个延续。 村庄规划中有一些图纸是需要严格按照规范制图,或形成一定规范格式的。 这些图纸的制作基本算是机械式的工作,可以用工具来代替人工。 如上图所示,在【村庄规划】组,新增了两个工作面板:【制表】和【制图】。 【制表】面板共有

    2024年02月15日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包