• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >C#教程 > 基于Silverlight打印的使用详解,是否为微软的Bug问题

基于Silverlight打印的使用详解,是否为微软的Bug问题

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-28

通过本文主要向大家介绍了silverlight,silverlight下载,silverlight是什么,silverlight安装失败,silverlight插件等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

1:新建Silverlight4 应用程序,名称为SLStudy。建好后如下:

image

2:在SLStudy下新建Silverlight用户控件,Print1.xaml作为要打印的控件。

在Print1.xaml里面添加代码为:

4:修改MainPage.xaml代码如下:

        void printDocument_PrintPage(object sender, PrintPageEventArgs e)
        {
            e.PageVisual = new Print1();
        }
</div>


在SL4 中提供打印功能的是PrintDocument类,所以先实例化一个该类对象。

接着注册一个PrintPage事件,PrintPage事件在打印的时候会触发。

然后调用printDocument的Print方法来打印。

在PrintDocument的PrintPage事件中,PrintPageEventArgs,是打印的参数。

里面可以获取当前打印机的一些信息。

image

在这里设置PageVisual,也就是要打印的对象就可以了。

image

当然我们的打印需求不可能这么简单,也许需要设置Print1的内容。假设我们要修改按钮显示的字,那么我们可以这样:

在这里我总结下:

1:确定要打印的内容,然后新建一个UserControl来显示打印的内容。

2:新建PrintDocument对象,注册PrintPage事件,调用Print方法。

3:在PrintPage事件中,构造要打印的对象,然后去数据库中获取数据,然后把数据绑定到控件上,接着把绑定好数据的控件赋值给PrintPageEventArgs的PageVisual 对象。
 

多页打印问题:

如果要打印的只有一张,那么这种方法应该就够了,但是有时候需要将一份文档打印多张,

比如将上面的按钮打印5张,那么又该如何实现了。

还记得我们上面PrintPageEventArgs的HasMorePages参数吗?


在PrintPage 事件触发后,默认的HasMorePages 为false。将HasMorePages设置为true,可以让PrintPage事件不断被触发。当 HasMorePages 属性为 true,PrintPage 事件将多次发生,直到 HasMorePages 为 false。


假设我们要将上面的按钮打印5张,那么可以设置4次HasMorePages为true,最后设置HasMorePages为false就可以了。

修改后的printDocument_PrintPage 方法如下:

    if (printCount < count) //如果已经打印的页数小于要打印的页数,说明还需要打印。
    {
         e.HasMorePages = true;
    }
    else
    {
        e.HasMorePages = false;
    }
}
</div>
有时候需要知道当前打印的是第几页,这可以通过查询printDocument.PrintedPageCount 属性来获得,

在PrintDocument_PrintPage 方法中,sender对象其实就是PrintDocument对象,所以我们可以将它强制类型转换。

假设我们要将上面的5个 Button的内容都修改为1,2,3,4,5.那么我们可以修改代码为:

        void printDocument_PrintPage(object sender, PrintPageEventArgs e)
        {
            PrintDocument printDocument = sender as PrintDocument;
            Print1 printVisual = new Print1();
            printVis

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • WPF/Silverlight实现图片局部放大的方法分析
  • silverlight实现图片局部放大效果的方法
  • Silverlight文件上传下载实现方法(下载保存)
  • Silverlight将图片转换为byte的实现代码
  • 汉字转拼音缩写示例代码(Silverlight和.NET 将汉字转换成为拼音)
  • 基于Silverlight打印的使用详解,是否为微软的Bug问题
  • 浅谈Silverlight 跨线程的使用详解
  • 基于Silverlight DataGrid中无代码设置开始与结束日期DatePicker的实现方法
  • 解析Silverlight调用WCF/Rest异常的解决方法

相关文章

  • 2017-05-28C#复合模式(Composite Pattern)实例教程
  • 2017-05-28浅谈C#设计模式之代理模式
  • 2017-05-28深入分析WPF客户端读取高清图片卡以及缩略图的解决方法详解
  • 2017-05-28C#使用foreach语句搜索数组元素的方法
  • 2017-05-28c#求两个数中最大值的方法
  • 2017-05-28使用mutex实现应用程序单实例运行代码分享
  • 2017-05-28C#在RichTextBox中显示不同颜色文字的方法
  • 2017-05-28c#操作附加数据库的方法
  • 2017-05-28C#文件上传的简单实现
  • 2017-05-28C#键值对容器的介绍

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • C#实现对字符串进行大小写切换的方法
    • 浅谈C# 类的继承
    • 【.net】未在本地计算机上注册“microsoft.ACE.oledb.12.0”提供程序解决办法
    • C#中lock死锁实例教程
    • 详解C#中SqlParameter的作用与用法
    • C#中常量和只读变量的区别小结
    • 支持多类型数据库的c#数据库模型示例
    • 详解C# 利用反射根据类名创建类的实例对象
    • c#调用c++方法介绍,window api
    • c#通过xpath读取xml示例

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有