ThinkGeo.com    |     Documentation    |     Premium Support

Getting a map screenshot

Hi, I'm facing problems trying to get a screenshot of a map with a Google overlay. I'm using WriteableBimap.Render method that allow rendering an UIElement within a bitmap.


The method itself works great but I need to save the screenshot, so I need to convert WriteableBitmap into byte[] in order to pass it to a WCF service. To to do that, I must have access to WriteableBitmap.Pixels property.


Here is the problem, Silverlight throw a security exception when trying to access this property. The reason is simple : when we render a WriteableBitpmap of an element that contain data from an other domain, bitmap data is protected and Pixel property is not accessible.


My map contain a google map image, so I'm facing the security exception because I think you put the google url directly in the UriSource property of an image.


 


There is a way to override the method that create the google map image ? If it's possible, as a workaround, I will be able to use a WebClient to download the image, like in this post social.msdn.microsoft.com/Forums/en...fcbd2fe834.


 


Thanks,


Yohan.



Dear Yo, 
  
 Thanks for your post, I think the way you handle this solution is right, maybe the reason of exception is because you try to access the WriteableBitmap.Pixels property before you opened the image, so could you please try to  get Byte array in  ImageOpened event of each image. Or could you please provide a sample? 
  
 Your workaround has a problem that it will flash every time you pan the map. 
  
 Any more questions please feel free to let me know. 
  
 Regards, 
  
 Gary