FAQ
[コンテンツ] ウィンドウで選択しているレイヤーのツリーを展開する/たたむ方法

ナレッジ番号:5567 | 登録日:2023/07/27 | 更新日:2024/11/21

概要

[コンテンツ] ウィンドウで選択されているレイヤー(グループ レイヤーを含む)のツリーを展開する/たたむ方法を示します。

Image

サンプル コード

[コンテンツ] ウィンドウでアクティブ化したいレイヤーを用意し、レイヤーを選択してから、下記のコードを実行してください。

// [コンテンツ] ウィンドウで選択されているレイヤーの取得
IMxDocument pMxDoc = ArcMap.Document;
ILayer pLayer = pMxDoc.SelectedLayer;
IGroupLayer pGroupLayer; 
ILegendInfo pLegendInfo;
ILegendGroup pLegendGroup;

if (!(pLayer is IGraphicsLayer))
{
   // グループ レイヤーの場合
   if (pLayer is IGroupLayer)
   {   
      pGroupLayer = (IGroupLayer)pLayer;
      pGroupLayer.Expanded = (!(pGroupLayer.Expanded));
   }
   // 単一レイヤーの場合
   else
   {
      pLegendInfo = (ILegendInfo)pLayer;
      pLegendGroup = pLegendInfo.get_LegendGroup(0);
      pLegendGroup.Visible = (!(pLegendGroup.Visible));
    }

   // マップ、[コンテンツ] ウィンドウの再描画
   pMxDoc.ActiveView.Refresh();
   pMxDoc.UpdateContents();
}
' [コンテンツ] ウィンドウで選択されているレイヤーの取得
Dim pMxDoc As IMxDocument = My.ArcMap.Document
Dim pLayer As ILayer = pMxDoc.SelectedLayer
Dim pGroupLayer As IGroupLayer
Dim pLegendInfo As ILegendInfo
Dim pLegendGroup As ILegendGroup

If Not TypeOf pLayer Is IGraphicsLayer Then
    'グループ レイヤーの場合
    If TypeOf pLayer Is IGroupLayer Then
        pGroupLayer = pLayer
        pGroupLayer.Expanded = Not pGroupLayer.Expanded
    ' 単一レイヤーの場合
    Else
        pLegendInfo = pLayer
        pLegendGroup = pLegendInfo.LegendGroup(0)
        pLegendGroup.Visible = Not pLegendGroup.Visible
    End If

    ' マップ、[コンテンツ] ウィンドウの再描画
    pMxDoc.ActiveView.Refresh()
    pMxDoc.UpdateContents()
End If

メタデータ

機能

種類

製品