0
点赞
收藏
分享

微信扫一扫

How to

zhyuzh3d 2022-09-18 阅读 119

internal class ActivateMapFrameBtn: Button {

protected override void OnClick()
{
//1. must be on the GUI - dont switch to QueuedTask

//2. Layout view must be active!
if (LayoutView.Active == null)
return;

//3. LayoutView.Active.ActiveMapFrame is the frame that will
// be activated
var map_frameName = "Map Frame";
if (LayoutView.Active.ActiveMapFrame == null ||
LayoutView.Active.ActiveMapFrame.Name != map_frameName) {

//simply select it to make it the active one
var selFrame = LayoutView.Active.Layout.GetElementsAsFlattenedList()
.OfType<MapFrame>().FirstOrDefault(mf => mf.Name == map_frameName);
if (selFrame == null)
return; //not found

LayoutView.Active.Layout.SelectElement(selFrame);
}

//4. Does the ActiveMapFrame have a valid map?
if (LayoutView.Active.ActiveMapFrame?.Map == null)
return; //invalid map frame - probably empty

//esri_layouts_activateMap - activate
//esri_layouts_deactivateMap - deactivate

//Do the activation
var plugin =
FrameworkApplication.GetPlugInWrapper("esri_layouts_activateMap")
as System.Windows.Input.ICommand;
if (plugin.CanExecute(null))
plugin.Execute(null);
}
}

 

举报

相关推荐

0 条评论