ARCGIS PRO UI简单介绍以下:
第一步:在Config.daml中在</AddInfo>标签下加上条件<conditions>标签(必须添加的)
<conditions><!-- 定义条件 ,此处定义了两个--Tab 另一个为 group><insertCondition id="Tab_Toggle_condition" caption="Toggle Tab"><!-- 我们的条件基于此基础状态设置为真或假 --就时开关,如果基础状态设置为真,结果就为假><state id="tab_state" /></insertCondition><insertCondition id="Controls_Toggle_condition" caption="Toggle Controls"><!-- 我们的条件基于此基础状态设置为真或假 --><state id="controls_state" /></insertCondition>
</conditions>
第二步:在 <modules>....... </modules>之间定义以下DAML代码。
<!-- 定义模块 id className autoLoad caption
<insertModule id="StatesAndConditions_Module" className="Module1" autoLoad="false" caption="Module1"><!-- 将该控件托管在单独的选项卡上--><tabs><!-- 定义单独的选项卡,定义了一个TAB(在菜单上 New Custom Tab),由两个group(group2、group3)组构成--><tab id="StatesAndConditions_Tab" caption="New Custom Tab" condition="Tab_Toggle_condition"><group refID="StatesAndConditions_Group2" /><group refID="StatesAndConditions_Group3" /></tab></tabs><groups><!-- 定义三各group(组),StatesAndConditions_Group1、StatesAndConditions_Group2、StatesAndConditions_Group3,StatesAndConditions_Group1在加载项菜单(appearsOnAddInTab="true"),其余在New Custom Tab定义(appearsOnAddInTab="false")-->
<!--appearsOnAddInTab="true" 当前组放在加载项菜单里(加载项Tab)--><group id="StatesAndConditions_Group1" caption="组1" appearsOnAddInTab="true"><!-- 定义图标大小 --><button refID="StatesAndConditions_ToggleTab" size="large" /></group><!--appearsOnAddInTab="false" 当前组只放在定义TAB(菜单里)--><group id="StatesAndConditions_Group2" caption="组2" appearsOnAddInTab="false"><!-- host controls within groups --><button refID="StatesAndConditions_ToggleControls" size="large" /></group><!--appearsOnAddInTab="false" 当前组只放在定义TAB(菜单里)--><group id="StatesAndConditions_Group3" caption="组3" appearsOnAddInTab="false" condition="Controls_Toggle_condition"><!-- 组内的控件 --><!--ARCGIS Pro Core Pro命令--><toolPalette refID="esri_mapping_newMapPalette" /><button refID="esri_core_saveProjectButton" /><button refID="esri_core_saveProjectAsButton" /><gallery refID="esri_mapping_bookmarksNavigateGallery" /><button refID="esri_mapping_mapContextMenu_ExportMap" /></group></groups><controls><!-- 自定义控件--><button id="StatesAndConditions_ToggleTab" caption="切换自定义选项卡" className="ToggleTab" 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 id="StatesAndConditions_ToggleControls" caption="切换控制可见性" className="ToggleControls" 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>
第三步: 复制新方法的以下代码,并将其粘贴到区域下方的文件中。此方法在激活和停用之间切换传递到方法中的状态。
C+代码:在ToggleStateModule1.csOverrides文件中
#region Toggle State/// <summary>/// Activate or Deactivate the specified state. State is identified via/// its name. Listen for state changes via the DAML <b>condition</b> attribute/// </summary>/// <param name="stateID"></param>public static void ToggleState(string stateID){if (FrameworkApplication.State.Contains(stateID)){FrameworkApplication.State.Deactivate(stateID);}else{FrameworkApplication.State.Activate(stateID);}}#endregion Toggle State
VB代码:在Module1.vb文件中,粘贴
Public Shared Sub ToggleState(stateID As String)If (FrameworkApplication.State.Contains(stateID)) ThenFrameworkApplication.State.Deactivate(stateID)ElseFrameworkApplication.State.Activate(stateID)End IfEnd Sub
第三步:更新调用该方法的按钮的 click 事件,使其如下所示:ToggleControlsToggleState
C+代码:
protected override void OnClick(){Module1.ToggleState("controls_state");}
vb代码:
Protected Overrides Sub OnClick()Module1.ToggleState("controls_state")End Sub
第四步:更新调用该方法的按钮的 click 事件,使其如下所示:ToggleTab
ToggleState
C+代码:
protected override void OnClick(){Module1.ToggleState("tab_state");}
vb代码:
Protected Overrides Sub OnClick()Module1.ToggleState("tab_state")
End Sub
第五步:生成和测试代码效果如下:
1.启动工程,这将启动 ArcGIS Pro。 创建新工程或在开始页面打开时打开现有工程。
2.在“加载项”选项卡中,单击新的“Toggle Custom Tab”按钮。这将激活条件,允许带有“New Custom Tab”标题的新选项卡可见。tab_state
3.单击新选项卡以查找带有单个按钮的控件组,标题为“Toggle Controls Visibility”。
按 Toggle Controls Visibility,这将激活条件,使新的 Controls Group 变为可见。controls_state
再次按 Toggle Controls Visibility 停用状态/条件并隐藏控件组。
再按 Toggle Controls Visibility
在“加载项”选项卡上,再次单击“Toggle Custom Tab”以停用状态/条件并隐藏“New Custom Tab”。