silverlight   发布时间:2022-05-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了风云的银光志Silverlight4.0教程之打印报表和图形大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

微软于PDC2009上发布Silverlight 4 Beta版,微软在Silverlight 4版本中处理了约8000个的Silverlight终端用户的请求,加入了一系列另开发人员兴奋的新特性,最突出的主要体现在几个方面: 开发工具增强:Visual studio 2010具有可视化的设计工具,创建项目时可以选择运行时版本是3.0还是4.0,BLEND4加入XAML和C#代码全方位智能感知功能

风云的银光志Silverlight4.0教程之打印报表和图形

微软于PDC2009上发布Silverlight 4 Beta版,微软在Silverlight 4版本中处理了约8000个的Silverlight终端用户的请求,加入了一系列另开发人员兴奋的新特性,最突出的主要体现在几个方面:

开发工具增强:Visual studio 2010具有可视化的设计工具,创建项目时可以选择运行时版本是3.0还是4.0,BLEND4加入XAML和C#@L_618_3@全方位智能感知功能、XAML的样式应用更为易用等。

摄像头与MIC硬件支持:可以用极少量的@L_618_3@实现启用用户本机的WebCam和Mic,并可进行本地录制。

报表打印支持:报表打印问题在Silverlight4中得到的较好的解决

更强大的基础类控件(RichTextBox、DataGrid增强版):富文本控件RichTextBox和具有可粘贴、排序功能的DataGrid被加入。

WCF增强:终于支持TCP通讯,比较http提升3-5倍,限于4502-4534端口。

兼容性增强:对Google的Chrome浏览器的支持

@H_705_21@mEF支持:MEF全称为Managed Extensibility Framework,译为“托管扩展框架”,支持创建大型复杂的应用程序。

运行速度提升:启动速度和渲染速度较前个版本提升约2倍左右。

DRM增强:支持PlayReady,可以对视频和音频的播放进行的保护,补充了对H.264的DRM保护。

其它增强:本地文件读写、鼠标右键事件支持、剪粘板支持

 

 

      在Silverlight4之前我们通常可以用在Silverlight中CALL一下JavaScript脚本来进行基于普通网页的打印方法,但是这种无论是打印方式效果还是精确度控制上都不能让人十分满意。

      对于一个Silverlight来说,需要打印的内容往往可能是整个网页的一部页,或是整个Silverlight应用程序的某个局部内容,如果仅仅使用JavaScript的网页打印的话,是无法满足Silverlight应用程序中打印的需求,不过这个问题终于在Silverlight 4.0中得到了比较完美的解决。Silverlight 4运行时中引入了System.Windows.PrinTing命名空间,这个命名空间中包含一个名为PrintDocument的类,它可以完成Silverlight应用程序中有“针对性”的打印任务。

     下面我们用GRID制作一个简单的报表。

XAML:

        < Grid x:Name = " LayoutRoot " BACkground = " White "   >
                < Grid.RowDeFinitions >
                        < RowDeFinition Height = " * " / >
                        < RowDeFinition Height = " 40 " / >
                < /Grid.RowDeFinitions >
                <!-- 简单的报表 -->
                < Border BorderBrush = " Black " BorderThickness = " 1 " >
                        < Grid x:Name = " reportGrid " Grid .Row= " 0 " ShowGridLines = " True " >
                                < Grid.resources >
10                                         < Style TargetType = " TextBlock " >
11                                                 < Setter Property = " VerticalAlignment " Value = " Center " / >
12                                                 < Setter Property = " HorizontalAlignment " Value = " Center " / >
13                                         < /Style >
14                                 < /Grid.resources >
15                                 < Grid.RowDeFinitions >
16                                         < RowDeFinition Height = " 30 " / >
17                                         < RowDeFinition Height = " 30 " / >
18                                         < RowDeFinition Height = " 30 " / >
19                                         < RowDeFinition Height = " 30 " / >
20                                         < RowDeFinition Height = " 30 " / >
21                                 < /Grid.RowDeFinitions >
22                                 < Grid.columnDeFinitions >
23                                         < columnDeFinition Width = " 100 " / >
24                                         < columnDeFinition Width = " 200 " / >
25                                         < columnDeFinition Width = " 300 " / >
26                                 < /Grid.columnDeFinitions >
27                                 < TextBlock Text = " 产品编号 " Grid .Row= " 0 " Grid .column= " 0 " / >
28                                 < TextBlock Text = " 产品名称 " Grid .Row= " 0 " Grid .column= " 1 " / >
29                                 < TextBlock Text = " 产品大类 " Grid .Row= " 0 " Grid .column= " 2 " / >
30                                 < TextBlock Text = " 1 " Grid .Row= " 1 " Grid .column= " 0 " / >
31                                 < TextBlock Text = " 数码相机 " Grid .Row= " 1 " Grid .column= " 1 " / >
32                                 < TextBlock Text = " 相机 " Grid .Row= " 1 " Grid .column= " 2 " / >
33                                 < TextBlock Text = " 2 " Grid .Row= " 2 " Grid .column= " 0 " / >
34                                 < TextBlock Text = " 笔记本电脑 " Grid .Row= " 2 " Grid .column= " 1 " / >
35                                 < TextBlock Text = " 电脑 " Grid .Row= " 2 " Grid .column= " 2 " / >
36                         < /Grid >
37                 < /Border >
38                 <!-- 打印按钮控件 -->
39                 < Button x:Name = " btnPrint " Grid .Row= " 1 " Click = " btnPrint_Click "
40                         Width = " 100 " Height = " 25 " Content = " 打印报表 " / >
41         < /Grid >

如图所示。

风云的银光志Silverlight4.0教程之打印报表和图形

C#:

              public   PrintSample ( )
                {
                        InitializeComponent ( ) ;
                        this . Loaded   + =   new   RoutedEventHandler ( PrintSample_Loaded ) ;
                }

                void   PrintSample_Loaded ( object   sender,   RoutedEventArgs   e )
                {
                        // 创建打印文档对象
10                         pd   =   new   System . Windows . PrinTing . PrintDocument ( ) ;
11                         // 创建打印事件,用于指定打印的文档对象作用的对象
12                         pd . PrintPage   + =   new   EventHandler < System . Windows . PrinTing . PrintPageEventArgs > ( pd_PrintPage ) ;
13                 }
14
15                 void   pd_PrintPage ( object   sender,   System . Windows . PrinTing . PrintPageEventArgs   e )
16                 {
17                         // 指定打印文档对象的页面
18                         e . PageVisual   =   reportGrid;
19                 }
20                 private   System . Windows . PrinTing . PrintDocument   pd;  
21                 private   void   btnPrint_Click ( object   sender,   RoutedEventArgs   e )
22                 {
23                         // 定义打印的文档名称
24                         pd . DocumentName   =   " 产品报表 " ;
25                         // 调用打印方法,开始打印
26                         pd . Print ( ) ;
27                 }

 

运行结果如图所示。

风云的银光志Silverlight4.0教程之打印报表和图形

      使用后台@L_618_3@来实现打印方法,主要依靠System.Windows.PrinTing.PrintDocument这个类来完成,PrintDocument具有PrintPage事件,你需要创建这个事件的事件处理方法,并在这个事件里指定打印文档的对象页面在这里就是reportGrid的GRID控件,其中DocumentName是你要打印文档的名称,最终调用Print方法开始打印,并显示打印窗口,如果你没有安装打印机,系统会提示你先安装打印机,如图所示。

风云的银光志Silverlight4.0教程之打印报表和图形

      PrintPage事件中具有StartPrint、EndPrint事件和HasMorePages@L_450_72@,StartPrint和EndPrint事件是在打印开始前和打印结束后引发,而HasMorePages@L_450_72@是一个bool类型的@L_450_72@,当PrintPage事件多次运行时,如果值为true情况下,事件将等待至HasMorePages为false时才继续引发下一次事件。这里需要说明的是,PrintDocument不仅支持GRID对象,连Image对象也可以通过PrintDocument打印出来。

大佬总结

以上是大佬教程为你收集整理的风云的银光志Silverlight4.0教程之打印报表和图形全部内容,希望文章能够帮你解决风云的银光志Silverlight4.0教程之打印报表和图形所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。