public static void SaveDynamicCanvas(DynamicCanvas canvas, int dpi, string filename) { Size size = new Size(canvas.Width, canvas.Height); canvas.Measure(size); canvas.Arrange(new Rect(size)); var rtb = new RenderTargetBitmap( (int)canvas.Width, //width (int)canvas.Height, //height dpi, //dpi x dpi, //dpi y PixelFormats.Pbgra32 // pixelformat ); rtb.Render(canvas); SaveRTBAsPNG(rtb, filename); }