Windows Phone 7 屏幕截图

1、分享一个取得屏幕截图的代码,但是由于程序不能在后台运行,

所以只能通过按钮或者菜单取得截图,然后把图片保存在相册中。

public void CaptureScreen(object sender, EventArgs e)
{
  WriteableBitmap bmp = new WriteableBitmap(480, 800);
  bmp.Render(App.Current.RootVisual, null);
  bmp.Invalidate();

  MemoryStream stream = new MemoryStream();
  bmp.SaveJpeg(stream, bmp.PixelWidth, bmp.PixelHeight, 0, 80);
  stream.Seek(0, SeekOrigin.Begin);

  MediaLibrary library = new MediaLibrary();  
  string filename = "ScreenShot_" + DateTime.Now.ToString("yyyy-MM-dd_hh:mm:ss");
  library.SavePicture(filename, stream);
  stream.Close();
}

 

2、每隔一段时间屏幕截图一次:

在App.xaml.cs的构造函数数添加如下方法,

就能在程序每执行10秒就截一次图并且保存在Pictures中的Saved Pictures目录下:

 private void SnapShot()
        {
            var timer = new System.Windows.Threading.DispatcherTimer
            {
                Interval = System.TimeSpan.FromSeconds(5)
            };
            timer.Tick += (sender, args) =>
            {
                Microsoft.Devices.VibrateController.Default.Start(
                                TimeSpan.FromSeconds(0.1));
                var bitmap = new System.Windows.Media.Imaging.WriteableBitmap(
                                this.RootFrame, null);
                var stream = new System.IO.MemoryStream();
                System.Windows.Media.Imaging.Extensions.SaveJpeg(bitmap, stream,
                                bitmap.PixelWidth, bitmap.PixelHeight, 0, 100);
                stream.Position = 0;
                var mediaLib = new Microsoft.Xna.Framework.Media.MediaLibrary();
                var datetime = System.DateTime.Now;
                var filename =
                    System.String.Format("Capture-{0}-{1}-{2}-{3}-{4}-{5}",
                            datetime.Year % 100, datetime.Month, datetime.Day,
                            datetime.Hour, datetime.Minute, datetime.Second);
                mediaLib.SavePicture(filename, stream);
            };
            timer.Start();
        }

注意需要添加XNA的引用,还有一个需要注意的是AppBar并不会被截下来,

如果你的应用程序界面中有AppBar,截下来的效果是下面是一栏黑色的。

posted @ 2012-03-12 11:00  sphinx007  阅读(2053)  评论(1编辑  收藏  举报