WPF打印控件内容

当我们想打印控件内容时,如一个Grid中的内容,可以用WPF中PrintDialog类的PrintVisual()方法来实现

界面如下:

XAML代码如下

 1  <Grid>
 2         <Grid.ColumnDefinitions>
 3             <ColumnDefinition/>
 4             <ColumnDefinition Width="300"/>
 5         </Grid.ColumnDefinitions>
 6         <Grid Grid.Column="0">
 7
 8             <Grid Width="800" Name="grid1">
 9                 <TextBlock TextWrapping="Wrap" FontSize="15">
10                 Control authors who want to customize the arrange pass of layout processing should override this method. The implementation pattern should call M:System.Windows.UIElement.Arrange(System.Windows.Rect) on each visible child element, and pass the final desired size for each child element as the finalRect parameter. Parent elements should call M:System.Windows.UIElement.Arrange(System.Windows.Rect) on each child, otherwise the child elements will not be rendered.
11 Many derived classes offer implementations of this method. Prominent ones include: M:System.Windows.Window.ArrangeOverride(System.Windows.Size), M:System.Windows.Controls.Page.ArrangeOverride(System.Windows.Size) and M:System.Windows.Controls.Control.ArrangeOverride(System.Windows.Size).
12                 </TextBlock>
13             </Grid>
14         </Grid>
15
16         <Grid Grid.Column="1">
17             <Button Height="30" VerticalAlignment="Top" Click="Button_Click">打印</Button>
18         </Grid>
19     </Grid>

当我们点击按钮时,进行打印

按钮事件:

时间: 2024-10-03 22:37:58

WPF打印控件内容的相关文章

WPF Popup 控件导致被遮挡内容不刷新的原因

WPF Popup 控件导致被遮挡内容不刷新的原因 周银辉 今天在写一个WPF控件时用到了Popup控件,很郁闷的情况是:当popup关闭时,原来被popup挡住的界面部分不刷新,非要手动刷新一下(比如最大最小化一下窗口),就连网上传说的这个方法也不行 ? 1 2 3 4 5 6 7 8 9 10 public static class UiHelper {     private delegate void NoArgDelegate();     public static void Ref

WPF控件内容自动缩放

一.功能.布局描述 1.使用Grid的GridSplitter实现可拖拽分隔栏效果.当ShowsPreview设置为True时,拖拽过程中不会刷新(控件内容要等到鼠标释放时才变化):当ShowsPreview设置为False时,控件内容实时跟随变化. 2.使用ViewBox特性实现控件内容随拖拽自动变化. 3.布局代码: <Grid> <Grid.RowDefinitions> <RowDefinition Height="40"/> <Row

wpf 保存控件中的内容为图片格式

黄色的是wpf控件的名称! //保存到特定路径            FileStream fs = new FileStream(@"C:\image.png", FileMode.Create);            //对象转换成位图            RenderTargetBitmap bmp = new RenderTargetBitmap((int)this.mediaElement1.ActualWidth, (int)this.mediaElement1.Act

winform 对话框,保存,另存为,还有打印控件

学习的对话框的种类: 1.打开文件对话框(OpenFileDialog) 2.保存文件对话框(SaveFileDialog) 3.字体对话框(FontDialog) 4.颜色对话框(ColorDialog) 5.打开文件夹对话框 FolderBrowserDialog ___________________________________________________________________________________________________________________

asp.net 打印控件使用方法

打印的效果及控制性虽然不是很好,但是也能勉强使用,应付一般的打印还是 可以的了.代码如下所示: 代码 复制代码 代码如下: //调用PrintControl.ExecWB(?,?)实现直接打印和打印预览功能.(直接用系统提供的print()方法打印无法隐藏某些区域) //preview:是否显示预览.null/false:不显示,true:显示 function printPage(preview) { try { var content=window.document.body.innerHT

winform 对话框控件,打印控件

1.文件对话框(FileDialog) 它又常用到两个: 打开文件对话框(OpenFileDialog) 保存文件对话框(SaveFileDialog) 2.字体对话框(FontDialog) 3.颜色对话框(ColorDialog) 4.打开文件夹对话框 FolderBrowserDialog using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using

【2017-05-03】winform打印控件、事件对象和事件数据、MDI窗体容器

一.打印控件 第一步先把打印对象搞出来. - printDocument    打印对象(将要打印的内容放到该对象里,从该对象里取内容打印) 设置他的PrintPage事件(对于要打印的每一页触发一次) - pageSetupDialog 打印设置对话框 - printPreviewDialog 打印预览对话框 - printPreviewControl  打印预览控件. 只需要把预览对象给他设置上就好 - printDialog  打印对话框 打印界面里面是否禁用页面范围.打印到文件等从Pri

基于MVC+EasyUI的Web开发框架经验总结(16)--使用云打印控件C-Lodop打印页面或套打报关运单信息

在最新的MVC+EasyUI的Web开发框架里面,我整合了关于网购运单处理的一个模块,其中整合了客户导单.运单合并.到货扫描.扣仓.出仓.查询等各个模块的操作,里面涉及到一些运单套打的操作,不过由于之前介绍LODOP不兼容Chrome等浏览器,因此曾经想放弃这个控件的打印处理,不过他们及时推出了"云打印控件C-Lodop",而且对之前的接口几乎完全兼容,因此在框架里也继续沿用了这个控件来进行相关的打印处理,包括常规的打印和运单信息套打等处理. 1.控件的安装 这个云控件C-Lodop(

利用lodop打印控件轻松实现批量打印

最近在做一个打印程序,要实现批量打印功能,在网上找了很多天,也在tp官网咨询大牛们,对大家的的提议我一一进行了研究,总结如下:要实现批量打印可以有两个办法: 一是利用专业的报表程序,能实现十分复杂的需求,但学习报表也是很痛苦的一件事,我专心研究了一天都没啥进展,也许我实在太菜了.这种方法推荐锐浪报表,免费还好用. 二是利用js插件实现,也在网上找了很多,最后感谢hunduncn,他建议我使用lodop(详见:http://www.thinkphp.cn/topic/12938.html),由于对