We have setup printing feature based on the Client Print Sample provided on GitHub. Everything is working except for the Military Message Layers not being displayed.
I am trying to get the most basic sample together with the print sample to display a 2525C symbol on the print preview, but I cannot get anything to work. If I try and programmatically add a message layer to the the print sample it throws an InvalidOperationException
"The Message could not be processed. MessageLayer must have been successfully loaded into a View (Map or Scene) before calling ProcessMessage."
Hack to ClientPrinting.xaml.cs sample:
if (PrintMapView.Extent == null)
{
PrintMapView.MaximumExtent = BaseMapView.MaximumExtent;
PrintMapView.MaxScale = BaseMapView.MaxScale;
PrintMapView.MinScale = BaseMapView.MinScale;
PrintMapView.SetRotation(BaseMapView.Rotation);
PrintMapView.WrapAround = BaseMapView.WrapAround;
PrintMapView.Map = BaseMapView.Map;
await PrintMapView.LayersLoadedAsync();
// create a dictionary to hold message properties
var messageProps = new Dictionary<string, string>();
// define message properties (property name, value)
messageProps.Add("_type", "position_report");
messageProps.Add("_action", "update");
messageProps.Add("_id", "e0ba16ac-cddd-4595-845e-32ca4177d080");
messageProps.Add("_control_points", "-117.187,32.770;-117.191,32.725;-117.097,32.653;-116.944,32.610");
messageProps.Add("_wkid", "4326");
messageProps.Add("sic", "GFGPOAO-------X");
messageProps.Add("uniquedesignation", "IGLOO");
// create the message using the properties
var message = new Esri.ArcGISRuntime.Symbology.Specialized.Message(messageProps);
// get the message layer from the map
var messageLayer = new MessageLayer(SymbolDictionaryType.Mil2525c)
{
ID = "MyMessageLayer"
};
PrintMapView.Map.Layers.Add(messageLayer);
// make sure it's loaded before using it
await PrintMapView.LayersLoadedAsync(new[] {messageLayer});
// call ProcessMessage on the layer
bool success = messageLayer.ProcessMessage(message);
if (!success)
{
Trace.WriteLine("Failed to process message.");
}
}Has anyone managed to print a map with military symbols on it?
Note that I am testing this against version 10.2.6