UIElementToJpeg メソッド

#wp7dev_jp

画面キャプチャ機能を実装するところで、紹介しましたが、画面上の構成要素である UIElement を渡すとJPEGで保存されるメソッドです。

引数として、対象とするUI Eleent と保存するファイル名を指定すると、ピクチャハブに保存されます。

private void UIElemantToJpeg(UIElement sender, String filename)
{
    WriteableBitmap bitmap = new WriteableBitmap(sender, null);
    MemoryStream stream = new MemoryStream();

    bitmap.SaveJpeg(stream, bitmap.PixelWidth, bitmap.PixelHeight, 0, 80);

    using (MediaLibrary medialib = new MediaLibrary())
        medialib.SavePicture(filename, stream.ToArray());
    MessageBox.Show("Saved");
}

呼び出し側はこんな感じ。

private void ContentPanel_Tap(object sender, GestureEventArgs e)
{
    UIElemantToJpeg((UIElement)sender, "contentpanel");
}

オブジェクトをタップすると、そのオブジェクトが jpeg 画像として保存されます。Grid などを指定すればその中身がすべて1つの画像として保存されるので便利。