【转载】WP7的应用截图

很多时候,你要考虑应用程序的页面截图。 可以有多种原因。 例如,你可以使用这个beta测试提供了一个简单的反馈方法。 我觉得这是超级宝贵的集成在一个应用程序的设计工作时,用户可以采取快速截图,将它们附加到电子邮件,并直接从Windows电话设备发送给我。 然而,同样的机制也可以被用来提供截图是应用程序的功能,例如,如果用户要保存他的应用程序的当前状态等

注意事项

注意以下几点:

  • 代码需要一个XNA库保存图片到媒体库。 有此问题,请按照下列步骤:
    • 在您的应用程序(或类库),添加到Microsoft.Xna.Framework的参考。
    • 在您的代码,添加了“使用”的声明Microsoft.Xna.Framework.Media。
    • 在属性文件夹,打开WMAppManifest.xml,并添加了以下功能:ID_CAP_MEDIALIB。
  • 如果设备连接PC上的Zune应用程序的方法调用将失败,异常。 为了避免这种情况,无论是断开的设备进行测试时,或结束在PC上的Zune应用。
  • 在模拟器上的方法调用而不会失败,有没有办法访问媒体库,所以在这个平台上,它几乎是无用的。
  • 这种方法只打印输出图像的Silverlight元素。 其他元素(如WebBrowser控件的实例内容)将输出一个黑色矩形。
     1 public static void SaveToMediaLibrary(
    2 FrameworkElement element,
    3 string title)
    4 {
    5 try
    6 {
    7 var bmp = new WriteableBitmap(element, null);
    8
    9 var ms = new MemoryStream();
    10 bmp.SaveJpeg(
    11 ms,
    12 (int)element.ActualWidth,
    13 (int)element.ActualHeight,
    14 0,
    15 100);
    16 ms.Seek(0, SeekOrigin.Begin);
    17
    18 var lib = new MediaLibrary();
    19 var filePath = string.Format(title + ".jpg");
    20 lib.SavePicture(filePath, ms);
    21
    22 MessageBox.Show(
    23 "Saved in your media library!",
    24 "Done",
    25 MessageBoxButton.OK);
    26 }
    27 catch
    28 {
    29 MessageBox.Show(
    30 "There was an error. Please disconnect your phone from the computer before saving.",
    31 "Cannot save",
    32 MessageBoxButton.OK);
    33 }
    34 }
    • 这种方法可节省任何FrameworkElement的。 通常,我用它来保存一整页,但你可以通过任何其他元素。

    • 第7行,我们创建了一个新的WriteableBitmap的。 这个优秀班能渲染成位图的可视化树。 请注意,甚至更多的功能,你可以使用的的伟大WriteableBitmapEx类库 (这是开源)。

    • 第9至16行,我们到一个MemoryStream保存的WriteableBitmap的。 默认支持的唯一格式为JPEG,但它是可以转换到其他格式与ImageTools库 (开源)。

    • 18日至20行保存的Windows Phone设备的媒体库中的图片。

    使用图像

    来撷取影像,只需启动手机上的图片库。 图像将保存的图片。 从这里,你可以分享图像(例如,通过电子邮件),或使用Zune软件与PC同步。

    保存到其他平台

    这当然是可以保存到其他平台比媒体库。 例如,您可以发送图像到Web服务,或储存设备上的独立存储。 要做到这一点,而不是使用一个MemoryStream,你可以使用任何其他流(如Web请求流或文件流)和保存,而不是。

    希望此代码对您有所帮助!

    快乐编码,

    洛朗



     
posted @ 2012-02-16 21:04  寒月萧风  阅读(145)  评论(0)    收藏  举报