![](dotnetdiagramimages/image1113.png)
public class MapSurround : Element, ArcGIS.Desktop.Mapping.IElement, System.ComponentModel.INotifyPropertyChanged, System.IComparable, System.IDisposable, System.IEquatable<Element>
Public Class MapSurround Inherits Element Implements ArcGIS.Desktop.Mapping.IElement, System.ComponentModel.INotifyPropertyChanged, System.IComparable, System.IDisposable, System.IEquatable(Of Element)
A MapSurround is a type of Element and therefore can be positioned or resized on the page. A MapSurround also has an associated MapFrame that can be modified.
Legend, NorthArrow, and ScaleBar are types of a MapSurround.
//Added references using ArcGIS.Desktop.Core; //Project using ArcGIS.Desktop.Layouts; //Layout class using ArcGIS.Desktop.Framework.Threading.Tasks; //QueuedTask public class MapSurroundExample { public static Task<bool> UpdateMapSurroundAsync(string LayoutName, string SBName, string MFName) { //Reference a layoutitem in a project by name LayoutProjectItem layoutItem = Project.Current.GetItems<LayoutProjectItem>().FirstOrDefault(item => item.Name.Equals(LayoutName)); if (layoutItem == null) return Task.FromResult(false); return QueuedTask.Run<bool>(() => { //Reference and load the layout associated with the layout item Layout lyt = layoutItem.GetLayout(); //Reference a scale bar element by name MapSurround scaleBar = lyt.FindElement(SBName) as MapSurround; if (scaleBar == null) return false; //Reference a map frame element by name MapFrame mf = lyt.FindElement(MFName) as MapFrame; if (mf == null) return false; //Set the scale bar to the newly referenced map frame scaleBar.SetMapFrame(mf); return true; }); } }
//Update a map surround. //Perform on the worker thread QueuedTask.Run(() => { // Reference and load the layout associated with the layout item Layout layout = layoutItem.GetLayout(); if (layout != null) { // Reference a scale bar element by name MapSurround scaleBar = layout.FindElement("MyScaleBar") as MapSurround; // Reference a map frame element by name MapFrame mf = layout.FindElement("MyMapFrame") as MapFrame; if ((scaleBar != null) && (mf != null)) //Set the scale bar to the newly referenced map frame scaleBar.SetMapFrame(mf); } });
System.Object
ArcGIS.Desktop.Framework.Contracts.PropertyChangedBase
ArcGIS.Desktop.Layouts.Element
ArcGIS.Desktop.Layouts.MapSurround
ArcGIS.Desktop.Layouts.ChartFrame
ArcGIS.Desktop.Layouts.ElevationGuideBar
ArcGIS.Desktop.Layouts.Legend
ArcGIS.Desktop.Layouts.NorthArrow
ArcGIS.Desktop.Layouts.ScaleBar
ArcGIS.Desktop.Layouts.TableFrame
Target Platforms: Windows 11, Windows 10