var screenShotLayer = MyMap.Layers["ScreenShotLayer"] as GraphicsLayer; var regionsLayer = MyMap.Layers["RegionsLayer"] as GraphicsLayer; var puitsLayer = MyMap.Layers["PuitsLayer"] as GraphicsLayer; var linesLayer = MyMap.Layers["LinesLayer"] as GraphicsLayer; var blocksLayer = MyMap.Layers["BlocksLayer"] as GraphicsLayer; var bufferPuitsLayer = MyMap.Layers["BufferPuitsLayer"] as GraphicsLayer; var topoMapLayer = MyMap.Layers["TopoMapLayer"] as ArcGISLocalTiledLayer; var topoMapLayer2 = MyMap.Layers["TopoMapLayer2"] as ArcGISLocalTiledLayer; regionsLayer.Visible = false; puitsLayer.Visible = false; linesLayer.Visible = false; blocksLayer.Visible = false; bufferPuitsLayer.Visible = false; topoMapLayer.Visible = false; topoMapLayer2.Visible = false;
var oldExtent = MyMap.Extent;
screenShotLayer.Graphics.AddRange(ListGraphicCopy);
MyMap.Extent = screenShotLayer.FullExtent;
//On fait le screenshot var image = Helper.BitmapHelper.CreateScreenShot(MyMap); //On supprime les graphics ajouté au layer screenshot foreach (var graphic in ListGraphicCopy) screenShotLayer.Graphics.Remove(graphic); //On remet l'ancien cadrage qu'avait la map MyMap.Extent = oldExtent; //On rend tous les layers visible regionsLayer.Visible = true; puitsLayer.Visible = true; linesLayer.Visible = true; blocksLayer.Visible = true; bufferPuitsLayer.Visible = true; topoMapLayer.Visible = true; topoMapLayer2.Visible = true;
Solved! Go to Solution.
/// <summary> /// Rafraîchit l'interface /// </summary> private static void refreshUI() { DispatcherFrame frame = new DispatcherFrame(); Dispatcher.CurrentDispatcher.BeginInvoke(DispatcherPriority.Background, new DispatcherOperationCallback(f => { ((DispatcherFrame)f).Continue = false; return null; }), frame); Dispatcher.PushFrame(frame); }
/// <summary> /// Rafraîchit l'interface /// </summary> private static void refreshUI() { DispatcherFrame frame = new DispatcherFrame(); Dispatcher.CurrentDispatcher.BeginInvoke(DispatcherPriority.Background, new DispatcherOperationCallback(f => { ((DispatcherFrame)f).Continue = false; return null; }), frame); Dispatcher.PushFrame(frame); }