Gets the Y position of the element. This method must be called on the MCT. Use QueuedTask.Run.
Element_ConvertToGraphics
//Convert a legend to a graphic and move the Title to the bottom of the legend and also move
//the label in the contents pane to the bottom of the list.
//Perform on the worker thread
await QueuedTask.Run(() =>
{
Legend leg = layout.FindElement("Legend") as Legend;
GroupElement result = leg.ConvertToGraphics().First() as GroupElement;
Element firstElm = result.Elements.First(); //Note: Bottom element is first in drawing order.
foreach (Element elm in result.Elements)
{
if (elm.Name == "Title")
{
elm.SetY(firstElm.GetY() - 0.25); //Move title below other legend elements
elm.SetTOCPositionAbsolute(result, false); // Move Title item in TOC to bottom as well
}
}
});
Element_GetSetY
//Modify an element's Y position.
//Perform on the worker thread
await QueuedTask.Run(() =>
{
double elmY = element.GetY();
elmY = 5.5;
element.SetY(elmY); //You don't have to get to set; a shortcut would be: element.SetY(5.5);
});
Clone an element
//Clone a layout graphic element and apply an offset.
//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 graphic element by name
GraphicElement graphicElement =
layout.FindElement("MyElement") as GraphicElement;
if (graphicElement != null)
{
//Clone and set the new x,y
GraphicElement cloneElement = graphicElement.Clone("Clone");
cloneElement.SetX(cloneElement.GetX() + xOffset);
cloneElement.SetY(cloneElement.GetY() + yOffset);
}
}
});
Target Platforms: Windows 11, Windows 10
ArcGIS Pro version: 3 or higher.