QCon全球软件开发大会8折优惠倒计时,购票立减¥1760!了解详情 >>> 了解详情
写点什么

Windows 8 中的标准打印界面

2011 年 10 月 14 日

Windows 8 Metro 即将带来诸多改变,其中就包含了打印特性。据传,微软将会为打印推出一套新 API 以及一个可扩展的用户界面。该 API 既可以被 XAML 型应用所调用,同样也适用于 JavaScript 型的应用。

对打印机的支持一直是 Windows 的一个重要卖点。Windows 长期优于 IBM OS/2 并最终获得成功,其中关键因素就是提供了对打印机驱动程序的完美支持。然而,用户界面的设计一直被微软所忽视,同时应用程序也无心去创建自己的用户界面。

首先要面临的问题是.NET 提供的标准打印对话框。当在 Basic 程序中使用打印对话框时,可扩展性很有限。开发者除了通过拖拽控件来构建打印对话框以外,想要构建非标准的对话框几乎是很难的。在 Metro 中,PrintTaskAdvancedOptions 类为应用提供了自定义的打印机选项。这为文本框和选项列表控件提供了很好的扩展性,除此之外,在 XAML 和基于 JavaScript 的应用中的展现方式也是一致的。

另外一个问题是打印预览窗口,每个程序都需要独自提供对打印预览的支持。Windows 8 Metro 中的解决办法是,将打印预览窗口和打印对话框绑定。如果应用只提供对打印的支持不支持打印预览,用户的打印操作就会被中断。

打印的核心功能都是由 Windows.Graphics.Printing 命名空间提供。该 API 可同时被 XAML 和 JavaScript 应用所调用,而且理论上两种调用方式有着相同的用户体验。对于基于 JavaScript 的应用来说,开发者只需在应用中注册打印机,然后通过媒体库中提供的 CSS 来控制显示效果即可。

对于基于 XAML 应用的开发者来说,需要使用 XAML 来为打印和预览页面设定布局。这点与 WPF 和 Silverlight 中的打印功能很相似,需要配置一个 PrintDocument 类实例的事件监听器。(该版本的类可以在 Windows.UI.Xaml.Printing 命名空间下找到)

  • AddPage:声明一个打印页面的实例
  • Paginate:当用户改变某项设置,可能导致重排文档页码时被触发
  • GetPreviewPage:声明一个预览页面的实例

由于基于 Windows.UI.Xaml 命名空间,所以打印设置无法在 Metro 和桌面应用间共享。

查看英文原文: A Standardized Printing UI for Windows 8

2011 年 10 月 14 日 10:261837
用户头像

发布了 156 篇内容, 共 43.3 次阅读, 收获喜欢 2 次。

关注

评论

发布
暂无评论
发现更多内容

Week 04 学习总结

Jeremy

第四周学习总结

iHai

极客大学架构师训练营

<<架构师训练营>>第四周作业

R20114

作业04-互联网架构演化

梦子说

课程作业

架构师训练营第四周课后作业

Cloud.

第四周总结

AIK

系统架构

eazonshaw

极客大学架构师训练营

Week 04- 作业二:学习总结

dean

极客大学架构师训练营

第04周 设计系统架构 命题作业

Jaye

架构师训练营第四周 - 作业

人世间

极客大学架构师训练营

「架构师训练营」第 4 周作业 - 互联网技术

森林

<<架构师训练营>>第四周总结

R20114

架构师0期第四周命题作业

何伟敏

第四周学习总结

麻辣

架构师训练营 W4 作业

telliex

架构学习第四周总结

云峰

第四周总结

changtai

极客大学架构师训练营

课堂作业 week4

Dennis

架构师训练营 第四周【学习总结】

小K

基于维基百科的网站架构分析

莫莫大人

极客大学架构师训练营

架构师训练营第四周作业

涛

极客大学架构师训练营

架构师训练营 W4 心得

telliex

【架构师训练营】第 4周总结

花生无翼

大型互联网应用架构中的主要技术,与其对应的业务问题

Ph0rse

架构师训练营第四周心得

努力努力再努力m

极客大学架构师训练营

第 04 周作业

Jeremy

互联网技术方案

allen

系统架构知识-常识YES,能力NO

飞雪

系统架构演化

L001

架构师0期第四周总结

何伟敏

「架构师训练营」第 4 周作业 - 总结

森林

移动应用开发的下一站

移动应用开发的下一站

Windows 8中的标准打印界面-InfoQ