Quantcast
Channel: I HATE WRITEABLEBITMAP
Viewing all articles
Browse latest Browse all 14

I HATE WRITEABLEBITMAP

$
0
0

Hmm, this seems to be a WriteableBitmap behavior inherited from Silverlight. This link contains the explanation/answer:

http://forums.silverlight.net/t/115371.aspx/1

If the UI control being rendered is in the live visual tree, WriteableBitmap works. If not, you can try a workaround such as the one below (not tested):

public static WriteableBitmap WriteableBitmapFromUserControl(UserControl uc, int Width, int Height)
        {
            WriteableBitmap outputWriteableBitmap = null;

            using (MemoryStream ms = new MemoryStream())
            {
                // Force UserControl to render to a certain size
                // Based on post: http://forums.silverlight.net/forums/p/115371/413511.aspx
                uc.Width = Width;
                uc.Height = Height;
                uc.Measure(new Size(Width, Height));
                uc.Arrange(new Rect(0, 0, Width, Height));

                // Write to Bitmpa and save to Memory Stream
                outputWriteableBitmap = new WriteableBitmap(uc, null);
                outputWriteableBitmap.SaveJpeg(ms, (int)uc.ActualWidth, (int)uc.ActualHeight, 0, 100);

                // Cleanup
                ms.Close();
            }

            return outputWriteableBitmap;
        }

Hope this helps,
Mark


Mark Chamberlain Sr. Escalation Engineer | Microsoft Developer Support | Windows Phone 7


Viewing all articles
Browse latest Browse all 14

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>