【转载】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请求流或文件流)和保存,而不是。
希望此代码对您有所帮助!
快乐编码,
洛朗
-
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异