当前位置:   article > 正文

ARCGIS PRO SDK 使用条件管理 Pro UI_arcgispro sdk 帮助

arcgispro sdk 帮助

ARCGIS PRO UI简单介绍以下:

第一步:在Config.daml中在</AddInfo>标签下加上条件<conditions>标签(必须添加的)

  1. <conditions>
  2. <!-- 定义条件 ,此处定义了两个--Tab 另一个为 group>
  3. <insertCondition id="Tab_Toggle_condition" caption="Toggle Tab">
  4. <!-- 我们的条件基于此基础状态设置为真或假 --就时开关,如果基础状态设置为真,结果就为假>
  5. <state id="tab_state" />
  6. </insertCondition>
  7. <insertCondition id="Controls_Toggle_condition" caption="Toggle Controls">
  8. <!-- 我们的条件基于此基础状态设置为真或假 -->
  9. <state id="controls_state" />
  10. </insertCondition>
  11. </conditions>

第二步:在 <modules>....... </modules>之间定义以下DAML代码。

  1. <!-- 定义模块 id className autoLoad caption
  2. <insertModule id="StatesAndConditions_Module" className="Module1" autoLoad="false" caption="Module1">
  3. <!-- 将该控件托管在单独的选项卡上-->
  4. <tabs>
  5. <!-- 定义单独的选项卡,定义了一个TAB(在菜单上 New Custom Tab),由两个groupgroup2group3)组构成-->
  6. <tab id="StatesAndConditions_Tab" caption="New Custom Tab" condition="Tab_Toggle_condition">
  7. <group refID="StatesAndConditions_Group2" />
  8. <group refID="StatesAndConditions_Group3" />
  9. </tab>
  10. </tabs>
  11. <groups>
  12. <!-- 定义三各group(组),StatesAndConditions_Group1、StatesAndConditions_Group2、StatesAndConditions_Group3,StatesAndConditions_Group1在加载项菜单(appearsOnAddInTab="true"),其余在New Custom Tab定义(appearsOnAddInTab="false")-->
  13. <!--appearsOnAddInTab="true" 当前组放在加载项菜单里(加载项Tab)-->
  14. <group id="StatesAndConditions_Group1" caption="组1" appearsOnAddInTab="true">
  15. <!-- 定义图标大小 -->
  16. <button refID="StatesAndConditions_ToggleTab" size="large" />
  17. </group>
  18. <!--appearsOnAddInTab="false" 当前组只放在定义TAB(菜单里)-->
  19. <group id="StatesAndConditions_Group2" caption="组2" appearsOnAddInTab="false">
  20. <!-- host controls within groups -->
  21. <button refID="StatesAndConditions_ToggleControls" size="large" />
  22. </group>
  23. <!--appearsOnAddInTab="false" 当前组只放在定义TAB(菜单里)-->
  24. <group id="StatesAndConditions_Group3" caption="组3" appearsOnAddInTab="false" condition="Controls_Toggle_condition">
  25. <!-- 组内的控件 -->
  26. <!--ARCGIS Pro Core Pro命令-->
  27. <toolPalette refID="esri_mapping_newMapPalette" />
  28. <button refID="esri_core_saveProjectButton" />
  29. <button refID="esri_core_saveProjectAsButton" />
  30. <gallery refID="esri_mapping_bookmarksNavigateGallery" />
  31. <button refID="esri_mapping_mapContextMenu_ExportMap" />
  32. </group>
  33. </groups>
  34. <controls>
  35. <!-- 自定义控件,激活或隐藏定义-->
  36. <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">
  37. <tooltip heading="Tooltip Heading">
  38. Tooltip text<disabledText />
  39. </tooltip>
  40. </button>
  41. <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">
  42. <tooltip heading="Tooltip Heading">
  43. Tooltip text<disabledText />
  44. </tooltip>
  45. </button>
  46. </controls>
  47. </insertModule>

第三步: 复制新方法的以下代码,并将其粘贴到区域下方的文件中。此方法在激活和停用之间切换传递到方法中的状态。

C+代码:在ToggleStateModule1.csOverrides文件中

  1. #region Toggle State
  2. /// <summary>
  3. /// Activate or Deactivate the specified state. State is identified via
  4. /// its name. Listen for state changes via the DAML <b>condition</b> attribute
  5. /// </summary>
  6. /// <param name="stateID"></param>
  7. public static void ToggleState(string stateID)
  8. {
  9. if (FrameworkApplication.State.Contains(stateID))
  10. {
  11. FrameworkApplication.State.Deactivate(stateID);
  12. }
  13. else
  14. {
  15. FrameworkApplication.State.Activate(stateID);
  16. }
  17. }
  18. #endregion Toggle State

VB代码:在Module1.vb文件中,粘贴

  1. Public Shared Sub ToggleState(stateID As String)
  2. If (FrameworkApplication.State.Contains(stateID)) Then
  3. FrameworkApplication.State.Deactivate(stateID)
  4. Else
  5. FrameworkApplication.State.Activate(stateID)
  6. End If
  7. End Sub

第三步:更新调用该方法的按钮的 click 事件,使其如下所示:ToggleControlsToggleState

C+代码:

  1. protected override void OnClick()
  2. {
  3. Module1.ToggleState("controls_state");
  4. }

vb代码:

  1. Protected Overrides Sub OnClick()
  2. Module1.ToggleState("controls_state")
  3. End Sub

第四步:更新调用该方法的按钮的 click 事件,使其如下所示:ToggleTabToggleState

C+代码:

  1. protected override void OnClick()
  2. {
  3. Module1.ToggleState("tab_state");
  4. }

vb代码:

  1. Protected Overrides Sub OnClick()
  2. Module1.ToggleState("tab_state")
  3. 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”。

注:如果需要把你的控件放入已有的菜单里:

  1. <updateModule refID="esri_core_module">
  2. <tabs>
  3. <updateTab refID="esri_core_insertTab">
  4. <insertGroup refID="UpdateInsertTab_Group1" placeWith="esri_project_styles" insert="before"/>
  5. </updateTab>
  6. </tabs>
  7. </updateModule>
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/151079
推荐阅读
相关标签
  

闽ICP备14008679号