silverlight中的图片控件没有直接将图片内容保存到文件的方法,也不能直接读出图片内容,需要借助silverlight3.0新增的一个类WriteableBitmap来保存。代码如下: public static void SaveAsPNG(Image img) { SaveFileDialog sfd = new SaveFileDialog() { DefaultExt = "png", Filter = "Png files (*.png)|*.png|All files (*.*)|*.*", FilterIndex = 1 }; if (sfd.ShowDialog() == true) { var bitmap = new WriteableBitmap((BitmapImage)img.Source); EditableImage imageData = new EditableImage(bitmap.PixelWidth, bitmap.PixelHeight); try { for (int y = 0; y < bitmap.PixelHeight; ++y) { for (int x = 0; x < bitmap.PixelWidth; ++x) { int pixel = bitmap.Pixels[bitmap.PixelWidth * y + x]; imageData.SetPixel(x, y, (byte)((pixel >> 16) & 0xFF), (byte)((pixel >> 8) & 0xFF), (byte)(pixel & 0xFF), (byte)((pixel >> 24) & 0xFF) ); } } } catch (System.Security.SecurityException) { throw new Exception("Cannot print images from other domains"); } // Save it to disk Stream pngStream = imageData.GetStream(); byte[] binaryData = new Byte[pngStream.Length]; pngStream.Read(binaryData, 0, (int)pngStream.Length); Stream stream = sfd.OpenFile(); stream.Write(binaryData, 0, binaryData.Length); stream.Close(); }