9

Tengo un StackPanel que incluye unos Rectangles que quiero poner en un archivo de imagen (por ejemplo, PNG). Estoy desarrollando esto en Windows Phone 7 y la mayoría de la información que encontré en Internet no era aplicable (creo) a WP7.UIElemento al archivo de imagen (WP7)

Creo que el espacio de nombre System.Windows.Media.Imaging es la clave para esto, pero no estoy seguro de por dónde empezar.

Esto es básicamente lo que quiero hacer:

StackPanel stack = new StackPanel(); 
List<Rectangle> recList = new List<Rectangle>(); 

añadir algunos rectángulos para recList

foreach(var x in recList) 
    stack.Children.Add(x); 

continuación, guarde el StackPanel a un archivo de imagen ...

Respuesta

4

Usted puede usar un WriteableBitmap para guardar la imagen.

WriteableBitmap wb = new WriteableBitmap(stack, null); 
MemoryStream ms = new MemoryStream(); 

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

Puede cambiar el MemoryStream ser una corriente de almacenamiento aislado en su lugar. Si desea mostrar lo anterior MemoryStream en un control Image:

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

O, ahorrando al almacenamiento aislado:

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