将UI元素保存为图片文件(WP7)

9
我有一个包含几个矩形的StackPanel,我想将它们放在一个图片文件中(例如PNG格式)。我正在Windows Phone 7上开发,但我在互联网上找到的大部分信息都不适用于WP7(我认为)。
我认为System.Windows.Media.Imaging命名空间是解决此问题的关键,但我不确定从何处开始。 这基本上就是我想做的事情:
StackPanel stack = new StackPanel();
List<Rectangle> recList = new List<Rectangle>();

recList 添加一些矩形。
foreach(var x in recList)
     stack.Children.Add(x);

然后将StackPanel保存为图像文件...

1个回答

4
你可以使用一个WriteableBitmap来保存图像。
WriteableBitmap wb = new WriteableBitmap(stack, null);
MemoryStream ms = new MemoryStream();

wb.SaveJpeg(ms, myWidth, myHeight, 0, 100);

您可以将MemoryStream更改为隔离存储流。如果您想在图像控件中显示上述MemoryStream

 BitmapImage bmp = new BitmapImage();
 bmp.SetSource(ms);
 image1.Source = bmp;

或者,保存到隔离存储:

using (var isoFileStream = new IsolatedStorageFileStream("myPicture.jpg", FileMode.OpenOrCreate, IsolatedStorageFile.GetUserStoreForApplication())) 
{                     
    wb.SaveJpeg(isoFileStream, myWidth, myHeight, 0, 100);                    
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接