Silverlight默认没有提供打印预览功能,我们可以通过ChildWindow实现一个打印预览窗口。在后台打印逻辑中生成Xaml的可视化树,直接输出到预览窗口的Child属性中,即可显示预览了。真正打印时也执行相同的逻辑即可。
Silverlight作为WPF的子集,不同于传统的Windows Form程序,界面的绘制不是通过GDI+进行的,而是通过XAML描述的可视化对象,统统交由WPF进行绘制处理。这也是微软向我们传递的编程理念:XAML+C#搞定一切。包括后来的metro界面(WPF在触摸方面优化的子集),Windows界面编程所经过的GDI->GDI+->WPF的演变,我们发现界面编程越来越面向对象。