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 カスタマイズ ファイルで宣言的に構成されます。使用頻度の高いコントロールは大きくて分かりやすく、使用頻度の低いツールは小さくする必要があります。さらに、コントロールは通常、機能をより明確にするためにキャプションとペアになっています。
サイズや相対的な配置など、リボン内のコントロールの位置は、グループ要素とタブ要素を使用して設定されます。
グループは、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>
コントロールと同様に、既存のグループは 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>
サブグループには、size
と verticalAlignment
の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 可変サイズに変更されます。 |
[マップ] タブの [レイヤー] グループは、グループ内で複数のサブグループを使用して定義されています。
以下は、グループの定義です。
<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
Medium
Small
グループが宣言されると、それを参照してタブに配置できます。タブは、タブのコレクション要素内のグループのリストとして宣言されます。次の例では、以前に宣言されたグループが「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 以前は、タブグループはキャプションと背景色をサポートしていました。
タブ グループは 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 とともに使用して、ツールバーに表示する要素を指定します。以下の例は、いくつかのコンボボックスとボタンを備えたツールバーを示しています。
<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>