ProGuide Ribbon Tabs and Groups - EsriJapan/arcgis-pro-sdk GitHub Wiki

Language:      C#
Subject:       Framework
Contributor:   ArcGIS Pro SDK Team <[email protected]>
Organization:  Esri, http://www.esri.com
Date:          10/06/2024
ArcGIS Pro:    3.4
Visual Studio: 2022
トピック

概要
グループ
グループにポップアップを追加する方法
グループの内容を変更する方法
サブグループ
タブ
タブグループ
ツールバー


概要

ArcGIS Pro は、Microsoft Office の新しいバージョンで普及したリボン パラダイムを使用します。リボンは、1つ以上のタブを含む単一の固定ツールバーで構成されています。使用可能な(表示されている)タブの数は、アプリケーションの状態に応じて動的に変化する場合があります。タブは、ユーザーの操作(クリック)を介して、またはアプリケーション内で実行されているコードによって指示されたときにアクティブになります。

各タブは、1つ以上のグループから構成され、小さな長方形の領域にキャプションと1つ以上のコントロールが含まれます。グループ内のコントロールの表現は、コントロールが使用される頻度によって異なり、DAML カスタマイズ ファイルで宣言的に構成されます。使用頻度の高いコントロールは大きくて分かりやすく、使用頻度の低いツールは小さくする必要があります。さらに、コントロールは通常、機能をより明確にするためにキャプションとペアになっています。

サイズや相対的な配置など、リボン内のコントロールの位置は、グループ要素とタブ要素を使用して設定されます。 Sample Group

グループ

グループは、module DAML 要素の groups コンテナー要素のコントロールのリストとして宣言されます。

<groups>
   <group id="esri_core_DockWindows" caption="Windows" condition="esri_core_MapPane">
      <button refID="esri_core_ShowProjectDockPane" size="large" />
   </group>
   <group id="esri_core_ProjectFile" caption="Project">
      <button refID="esri_core_OpenProjectButton" size="large" />
      <button refID="esri_core_NewProjectButton" size="middle"/>
      <button refID="esri_core_SaveProjectButton" size="middle"/>
      <button refID="esri_core_SaveProjectAsButton" size="middle" separator="true"/>
      <button refID="esri_core_CloseProjectButton" size="middle"/>
      <button refID="esri_core_ProjectSettingsButton" size="middle"/>
   </group>
   <group id="esri_core_ProjectImport" caption="Import">
      <button refID="esri_core_ImportMapButton" size="large" />
   </group>
   <group id="esri_core_ProjectNewItem" caption="New">
      <button refID="esri_core_NewMapButton" size="large" />
   </group>
</groups>

上記の例では、4つのグループが宣言されています。ボタン要素は、以前に宣言されたボタンを参照することに注意してください。ボタン画像はボタン宣言の他の場所で提供されますが、ボタンのサイズはグループで指定されます。同じボタンが複数のグループに表示される可能性があることに注意してください。グループには任意のコントロール(ラベル コントロール、チェックボックス、編集ボックスなど)を追加できます。separator 属性は、同じグループ内に複数のコントロールを分離するために使用することができます。

condition 属性は、グループが表示されて使用可能かどうかを制御するために使用されます。コンディションが指定されていない場合、グループは常に表示されます。

グループにポップアップを追加する方法

グループは、オプションで「詳細」ボタン(グループ キャプションの隣にある小さなリンク ウィジェット)をサポートします。このボタンは、あいまいな機能にアクセスできるダイアログ ボックスを表示するために使用されます。ボタン機能を参照するには、グループ要素の launcherButtonID 属性を使用します。

<group id="esri_mapping_navigateGroup" caption="Navigate" 
            launcherButtonID="esri_mapping_navigationOptionsButton" 
            smallImage="pack://application:,,,/ArcGIS.Desktop.Resources;component/Images/3DNavigationTool16.png">
   <tool refID="esri_mapping_exploreSplitButton" size="large" />
   <button refID="esri_mapping_zoomFullButton" size="small" />
   ...
</group>

Group With Popup

グループの内容を変更する方法

コントロールと同様に、既存のグループは DAML ファイルを使用して変更できます。次の例では、既存のグループからボタンを削除します。

<updateModule refID="esrimappingExtension">
   <groups>
      <updateGroup refID="ESRImappingFindGroup">
         <deleteButton refID="ESRImappingFindButton"/>
      </updateGroup>
   </groups>
</updateModule>

サブグループ

サブグループは、オプションでグループ内で宣言されます。サブグループを使用すると、リボンのスケーリングをより細かく制御でき、アプリケーション ウィンドウのサイズが変更されたときにユーザー エクスペリエンスが最適化されます。各サブグループは、最大3つのコントロールを保持できます。

<subgroups>
    <!-- Can only have 3 items in a subgroup-->
    <subgroup id="esri_core_editBtns" size="MediumThenSmallWhenSmall" verticalAlignment="Center" >
		<button refID="esri_core_editCutButton"/>
		<button refID="esri_core_editCopyButton"/>
		<button refID="esri_core_editCopyPaths"/> 
    </subgroup>
</subgroups>

サブグループには、sizeverticalAlignment の2つの属性があります。verticalAlignment は「Center」または「Top」(デフォルト)を設定できます。 size は次のいずれかになります。

size 属性 説明
AlwaysLarge 子コントロール は、リボン サイズに関係なく、常に Large 可変サイズを使用します。
AlwaysMedium 子コントロールは、リボン サイズに関係なく、常に Medium 可変サイズを使用します。
AlwaysSmall 子コントロール は、リボン サイズに関係なく、常に Small 可変サイズを使用します。
Default リボン サイズが Large の場合、子コントロールは Large 可変サイズを使用します。 リボン サイズが Medium の場合、それらは Medium 可変サイズに変更されます。 リボン サイズが Small の場合、それらは Small 可変サイズに変更されます。このオプションは、子コントロールに可変の最大値を提供します。
LargeThenMediumWhenMedium リボン サイズが Large の場合、子コントロールは Large 可変サイズを使用します。リボン サイズが Medium または Small の場合、それらは Medium 可変サイズに変更されます。
LargeThenMediumWhenSmall リボン サイズが Large または Medium の場合、子コントロールは Large 可変サイズを使用します。リボン サイズが Small の場合、それらは Medium 可変サイズに変更されます。
LargeThenSmallWhenMedium リボン サイズが Large の場合、子コントロールは Large 可変サイズを使用します。リボン サイズが Medium または Small の場合、それらは Small 可変サイズに変更されます。
LargeThenSmallWhenSmall リボン サイズが Large または Medium の場合、子コントロールは Large 可変サイズを使用します。リボン サイズが Small の場合、Small 可変サイズに変更されます。
MediumThenSmallWhenMedium リボン サイズが Large の場合、子コントロールは Medium 可変サイズを使用します。リボン サイズが Medium または Small の場合、それらは Small 可変サイズに変更されます。
MediumThenSmallWhenSmall リボン サイズが Large または Medium の場合、子コントロールは Medium 可変サイズを使用します。リボン サイズが Small である場合、Small 可変サイズに変更されます。

[マップ] タブの [レイヤー] グループは、グループ内で複数のサブグループを使用して定義されています。

subGroups1_new.png

以下は、グループの定義です。

        <group id="esri_mapping_layerGroup" caption="Layer" smallImage="pack://application:,,,/ArcGIS.Desktop.Resources;component/Images/AddContent16.png" keytip="L">
          <subgroup refID="esri_mapping_firstLayerSubGroup"/>
          <subgroup refID="esri_mapping_secondLayerSubGroup"/>
        </group>

そして、サブグループの定義です。

        <subgroup id="esri_mapping_firstLayerSubGroup" >
          <gallery refID="esri_mapping_basemapGallery" inline="false" size="large" />
          <splitButton refID="esri_mapping_addDataSplitButton" />
        </subgroup>
        <subgroup id="esri_mapping_secondLayerSubGroup" size="MediumThenSmallWhenSmall">
          <button refID="esri_mapping_newGraphicsLayerButton" />
        </subgroup>    

サブグループの size 属性を使用して、グループの見た目を操作することができます。

Large
subGroups2_new.png

Medium
subGroups3_new.png

Small
subGroups4_new.png

タブ

グループが宣言されると、それを参照してタブに配置できます。タブは、タブのコレクション要素内のグループのリストとして宣言されます。次の例では、以前に宣言されたグループが「Map」というラベルの付いた新しいタブに追加されます。

<tabs>
   <tab id="esri_core_MapTab" caption="Map" condition="esri_core_MapPane" keytip="M">
      <group refID="esri_core_NavigateGroup" />
      <group refID="esri_core_MapGroup" />
      <group refID="esri_core_ViewGroup" />
      <group refID="esri_core_SelectionGroup"/>
      <group refID="esri_core_InquiryGroup"/>
      <group refID="esri_core_MapWindowsGroup"/>
   </tab>
</tabs>

コントロールと同様に、タブの関連性はコンディションを使用して管理できます。condition 属性は、タブが表示、利用可能であるか否かを制御するために使用されます。コンディションはタブのアクティブ化の制御には使用されず、タブが利用可能かのみを制御します。コンディションが指定されていない場合、タブは常に表示されます。

アクセシビリティをサポートするには、適切なキーチップを各タブに提供する必要があります。選択した文字は意味があり、既存のキーチップと異なる必要があります。キーチップは、必要に応じて曖昧さをなくすために複数の文字で構成できます。

タブグループ

関連するタブのコレクションをグループ化することで、より分かりやすくすることができます。このようなタブの集まりをタブグループと呼びます。下図のリボンでは、3つのタブを含むタブグループがあります。2.x 以前は、タブグループはキャプションと背景色をサポートしていました。

TabGroup

タブ グループは tabGroups コレクション要素内で宣言され、ID で構成されます。タブは、tabGroupID 属性を使用してタブ グループに関連付けられます。以下の DAML は、上に表示されているようなタブとタブ グループを作成します。

<tabGroups>
   <tabGroup id="esri_mapping_featureLayerTabGroup">
   </tabGroup>
</tabGroups>
<tabs>
   <tab id="esri_mapping_featureLayerAppearanceTab" caption="Feature Layer" condition="esri_mapping_onlyFeatureLayersSelectedCondition" tabGroupID="esri_mapping_featureLayerTabGroup" activationCategory="esri_Appearance">
      <group refID="esri_mapping_layerScaleVisibilityGroup"/>
      <group refID="esri_mapping_layerEffectsGroup" />
      <group refID="esri_mapping_layerCompareGroup"/>
     <group refID="esri_mapping_layerSymbology" />
      <group refID="esri_mapping_layerExtrusion" />
      <group refID="esri_mapping_layer3DGroup" />
      <group refID="esri_mapping_lightingAndShadingGroup" />
   </tab>
   <tab id="esri_mapping_labelingTab" caption="Labeling" condition="esri_mapping_onlyFeatureLayersSelectedCondition" tabGroupID="esri_mapping_featureLayerTabGroup" activationCategory="esri_Label">
      <group refID="esri_mapping_labelingLayerGroup" />
      <group refID="esri_mapping_labelingLabelClassGroup" />
      <group refID="esri_mapping_labelingScalesGroup" />
      <group refID="esri_mapping_labelingTextSymbolGroup" />
      <group refID="esri_mapping_labelingPlacementStyleGroup" />
      <group refID="esri_mapping_labelingMapGroup" />
   </tab>
   <tab id="esri_mapping_featureLayerDataTab" caption="Data" condition="esri_mapping_onlyFeatureLayersSelectedCondition" tabGroupID="esri_mapping_featureLayerTabGroup" activationCategory="esri_Data">
      <group refID="esri_mapping_layerDefQueryGroup" />
      <group refID="esri_mapping_featureLayerAttributeGroup" />
      <group refID="esri_mapping_layerSelectionGroup"/>
      <group refID="esri_mapping_designViewGroup"/>
      <group refID="esri_mapping_archiveGroup"/>
      <group refID="esri_mapping_layerRelationshipsGroup"/>
      <group refID="esri_mapping_layerToolsGroup"/>
      <group refID="esri_mapping_localFeatureCache"/>
   </tab>
</tabs>

通常、タブ グループは、グラフィック エレメントの編集など、ユーザーが一時的なモードに入る状況で使用されます。通常、タブ グループは、常に表示されるタブ(グローバル タブ)では使用されません。

ツールバー

リボン グループは、ツールバーへのボタンの内部コレクションとグループ化をサポートします。ツールバーは純粋に宣言型であり、複数のグループをサポートしています。グループ定義は、ツールバーの外観を設定します。適切なコントロール要素を refID とともに使用して、ツールバーに表示する要素を指定します。以下の例は、いくつかのコンボボックスとボタンを備えたツールバーを示しています。

Toolbar

<toolbars>
   <toolbar id="esri_mapping_labelTextSymbolFontToolbar">
     <group>
       <customControl refID="esri_mapping_labelClassFontControl"/>
       <comboBox refID="esri_mapping_labelTextSymbolFontSizeComboBox" size="small" />
       <button refID="esri_mapping_labelTextSymbolIncreaseSizeButton" size="small" />
       <button refID="esri_mapping_labelTextSymbolDecreaseSizeButton" size="small" />
     </group>
     <group>
       <comboBox refID="esri_mapping_labelTextSymbolFontStyleComboBox" />
       <customControl refID="esri_mapping_labelTextSymbolVariableFontSettings" size="small" />
       <customControl refID="esri_mapping_labelTextSymbolColorPicker" size="small" />
     </group>
   </toolbar>

</toolbars>
⚠️ **GitHub.com Fallback** ⚠️