I would like to export a map to the png file. But the resulting file is empty. This is my solution:In MainPage is (piece of code)
<Border x:Name="mapBorder" Background="White" CornerRadius="5" BorderThickness="1" BorderBrush="Black" Margin="5" Grid.Column="0">
<Grid>
<esri:Map x:Name="MyMap" Margin="5" >
<esri:ArcGISDynamicMapServiceLayer ID="BackMap" Url="http://w2003gis/ArcGIS/rest/services/BackMap/MapServer" />
<esri:ArcGISDynamicMapServiceLayer ID="DynamicMap" Url="http://w2003gis/ArcGIS/rest/services/HrAdminDiv/MapServer" />
<esri:GraphicsLayer ID="SingleAnalysisGraphicsLayer" />
<esri:GraphicsLayer ID="MultiAnalysisGraphicsLayer" />
</esri:Map>
</Grid>
</Border>
(GraphicsLayers are filled in code behind)And in code i do this:
var sfd = new SaveFileDialog();
sfd.Filter = "PNG Image File (*.png)|*.png";
WriteableBitmap wbmp = (MyMap, new TranslateTransform());
if (sfd.ShowDialog() == true)
{
using (Stream stream = sfd.OpenFile())
{
var enc = new PngEncoder();
enc.Encode(wbmp.ToImage(), stream);
stream.Close();
}
}
Result file is empty (size is 0).When I export only GrapgicsLayer, everything is OK, but I miss the BackMap and DynamicMap layer.
var sfd = new SaveFileDialog();
sfd.Filter = "PNG Image File (*.png)|*.png";
WriteableBitmap wbmp = ((ArcGISDynamicMapServiceLayer)MyMap.Layers["BackMap"]).ToBitmap();
if (sfd.ShowDialog() == true)
{
using (Stream stream = sfd.OpenFile())
{
var enc = new PngEncoder();
enc.Encode(wbmp.ToImage(), stream);
stream.Close();
}
}
How can I export every layers from MyMap object to graphic file?Thanks, O.