快捷搜索:

Silverlight 4与Flex 4打印功能的对比

Silverlight作为一门新技巧推出已经三年,在Silverlight早期版本,大年夜家都觉得Silverlight的功能 无法和Flex进行比较,更是无法逾越Flex,在2009年11月,微软推出了Silverlight 4测试版本,以其强 大年夜的功能又一次吸引了浩繁开拓职员的眼球,许多曾经在Flex下支持的功能,现在Silverlight下已经可 以实现,而且还有一些新的功能,Flex无法实现。例如,Silverlight 4的COM组件交互,从桌面疲塌工具 到Silverlight利用等功能。为了使更多的开拓职员懂得Silverlight开拓平台,我将对 Silverlight 4和 Flex 4进行一系列的比较,盼望能赞助开拓职员懂得更多Silverlight新功能。本文,将对Silverlight 4 和Flex 4的打印功能进行比较。

Silverlight 4打印功能

Silverlight 4的打印功能是由PrintDocument类进行节制,实现打印功能必要按照以下步骤:

步骤1:建立PrintDocument工具;

步骤2:在PrintDocument工具中设置文档名;

步骤3:添加事故句柄到PrintPage事故中,同时也可以添加到StartPrint和EndPrint事故中;

步骤4:在PrintPage打印事故中,建立一个打印窗口,该窗口将作为父窗口呈现,可以添加想打印的 内容或者控件到该打印窗口。例如建立一个StackPanel,然后在StackPanel中添加想打印的内容控件;

步骤5:在打印时,假如HasMorePages为True,阐明支持多个页面进行打印;

步骤6:重复4和5步骤,就可以实现完备的Silverlight 4打印功能;

看起来这些步骤是不是很简单。下面供给一个例程代码,点击打印按钮后,会打印出“Hello World” 。

1: using System;

2: using System.Windows;

3: using  System.Windows.Controls;

4: using System.Windows.Printing;

5:

6: namespace  HelloPrinter

7: {

8:     public partial class MainPage : UserControl

9:      {

10:         public MainPage()

11:         {

12:              InitializeComponent();

13:         }

14:

15:          private void button1_Click(object sender, RoutedEventArgs e)

16:          {

17:             PrintDocument printDoc = new PrintDocument ();

18:             printDoc.DocumentName = "Hello World from  Silverlight";

19:             printDoc.PrintPage += new  EventHandler

(printDoc_PrintPage);

20:              printDoc.Print();

21:         }

22:

23:         void  printDoc_PrintPage(object sender, PrintPageEventArgs e)

24:         {

25:              StackPanel panel = new StackPanel() { Orientation =  Orientation.Horizontal };

26:             panel.Children.Add(new  TextBlock() { Text = "Hello ",

FontFamily = new  System.Windows.Media.FontFamily("Arial"), FontSize = 12 });

27:              panel.Children.Add(new TextBlock() { Text = "World",

FontFamily = new  System.Windows.Media.FontFamily("Arial"), FontSize = 12 });

28:              e.PageVisual = panel;

29:             e.HasMorePages = false;

30:          }

31:     }

32: }

当点击按钮后,会调用打印事故句柄,在打印历程中,Silverlight将自动设置打印窗口的宽和高,可 以经由过程PrintableArea属性获取在打印事故中获取打印页面的宽和高。

您可能还会对下面的文章感兴趣: