Olá pessoal, tudo bom?

Aproveito uma pergunta que me foi feita para escrever mais um post sobre desenvolvimento para Windows Phone. Dessa vez falo sobre como obter, via C#, um screenshot da tela da APP e armazenar a imagem na galeria de fotos do WP.

screenshot

No exemplo temos um botão que será o responsável por disparar a ação de captura da tela e armazenar o resultado no Media Library do Windows Phone. Veja o trecho de código em XAML:

...

   
   

Em seguida, foi implementado o método correspondente ao clique do botão. Veja o trecho de código em C#:

//Namespaces incorporados ao projeto---------------
using System.Windows.Media.Imaging;
using Microsoft.Xna.Framework.Media; //Necessário fazer referência ao Microsoft.Xna.Framework no projeto do WP
using System.IO;
using Microsoft.Phone.Tasks;
//------------------------------------------------
...
...
private void btnScreenShot_Click(object sender, RoutedEventArgs e)
{
  var wb = new WriteableBitmap(LayoutRoot, new TranslateTransform());
  using (var mediaLibrary = new MediaLibrary())
  {
    using (var stream = new MemoryStream())
    {
      var filename = string.Format("Blog-Eduardo-H-Rizo-{0}.jpg", DateTime.Now.ToString("yyyy-MM-dd-hh-mm-ss"));
      wb.SaveJpeg(stream, wb.PixelWidth, wb.PixelHeight, 0, 100);
      stream.Seek(0, SeekOrigin.Begin);
      mediaLibrary.SavePicture(filename, stream);
      MessageBox.Show("Sua tela foi armazenada no álbum de fotos do Windows Phone.");
    }
  }
}
...

Como resultado temos a imagem da tela da APP armazenada no álbum de fotos do Windows Phone.

saved-pictures

Post Relacionado: 

Grande abraço,
Eduardo Henrique Rizo (@eduardorizo)

Fonte: Blog do Eduardo H. Rizo