我有一个StackPanel
,其中包含我想要放入图像文件的几个Rectangles
(例如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保存到图像文件...
答案 0 :(得分: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);
}