void ISupportsDynamicImageByteRequests.GetImageData(DynamicLayer.ImageParameters properties, OnImageDataReceived onImageDataReceived) { OnImageComplete onImageComplete = (image, props) => { BitmapSource bitmapSource = image as BitmapSource; MemoryStream stream = new MemoryStream(); if (bitmapSource != null) { PngBitmapEncoder encoder = new PngBitmapEncoder(); encoder.Interlace = PngInterlaceOption.Off; encoder.Frames.Add(BitmapFrame.Create(bitmapSource)); encoder.Save(stream); stream.Seek(0, SeekOrigin.Begin); } onImageDataReceived(stream, props); }; GetSource(properties, onImageComplete); }