WPF安装打印机驱动后PrintDialog 执行打印事件

简介: 原文:WPF安装打印机驱动后PrintDialog 执行打印事件 WPF可以很好的利用流文档来实现打印预览和PrintDialog 实现打印功能,但是我在这只是写了一个很简单的打印功能演示。
原文: WPF安装打印机驱动后PrintDialog 执行打印事件

WPF可以很好的利用流文档来实现打印预览和PrintDialog 实现打印功能,但是我在这只是写了一个很简单的打印功能演示。
PagePrint布局代码:

d:DesignHeight="350" d:DesignWidth="525" Background="White"
      Title="PagePrint">

    <Canvas x:Name="PrintArea">

        <TextBlock FontSize="10" FontWeight="Bold" Foreground="Black" Name="Spec"
                       Canvas.Left="165" Canvas.Top="116" Height="13" Width="96">
        </TextBlock>
        <TextBlock FontSize="10" FontWeight="Bold" Foreground="Black" Name="Name"
                       Canvas.Left="165" Canvas.Top="96" Height="13" Width="96">
        </TextBlock>
        <TextBlock FontSize="10" FontWeight="Bold" Foreground="Black" Name="Mfrs"
                       Canvas.Left="165" Canvas.Top="136" Height="13" Width="96">
        </TextBlock>

    </Canvas>

布局代码只是很简单的放了几个文本框,此PagePrint布局代码的后台:

 //定义全局变量用于要打印的名称,规格以及生厂商
        public static String CName = null;
        public static String CSpec = null;
        public static String CMfrs = null;
        public void Pring()
        {
            String CName = PagePrint.CName;
            String CSpec = PagePrint.CSpec;
            String CMfrs = PagePrint.CMfrs;
            // MessageBox.Show(CName);

            Name.Text = CName;
            Spec.Text = CSpec;
            Mfrs.Text = CMfrs;
            //打印打印区域
            PrintDialog dialog = new PrintDialog();
            dialog.PrintVisual(PrintArea, "Test");

因为我在另一个页面点击button按钮可以实现此打印功能,所以只需要在另一个页面添加如下代码:

 //给名称,规格以及生产商的全局变量赋值用于打印
                    PagePrint.CName = CName;
                    PagePrint.CSpec = Spec;
                    PagePrint.CMfrs = Mfrs;

                    //调用函数打印。。
                    PagePrint PrintprintArea = new PagePrint();
                    PrintprintArea.Pring();

注意:安装好打印驱动之后要把打印机设置成默认打印机,其次要注意如果打印出来的是空白或者错位,可能是由于布局文件大小,位置等等的原因。

目录
相关文章
|
6月前
|
C# 微服务 Windows
模块化革命:揭秘WPF与微服务架构的完美融合——从单一职责原则到事件聚合器模式,构建高度解耦与可扩展的应用程序
【8月更文挑战第31天】本文探讨了如何在Windows Presentation Foundation(WPF)应用中借鉴微服务架构思想,实现模块化设计。通过将WPF应用分解为独立的功能模块,并利用事件聚合器实现模块间解耦通信,可以有效提升开发效率和系统可维护性。文中还提供了具体示例代码,展示了如何使用事件聚合器进行模块间通信,以及如何利用依赖注入进一步提高模块解耦程度。此方法不仅有助于简化复杂度,还能使应用更加灵活易扩展。
140 0
|
前端开发 C# Windows
WPF鼠标、键盘、拖拽事件、用行为封装事件
本文主要介绍了WPF中常用的鼠标事件、键盘事件以及注意事项,同时使用一个案例讲解了拓展事件。除此之外,本文还讲述如何用行为(Behavior)来封装事件。
396 0
如何解决WPF中 ScrollViewer 内包含 TreeView 或者 ListBox 等控件时滚轮事件被劫持的问题
如何解决WPF中 ScrollViewer 内包含 TreeView 或者 ListBox 等控件时滚轮事件被劫持的问题
|
Java C# 程序员
WPF程序中的弱事件模式
原文:WPF程序中的弱事件模式 在C#中,得益于强大的GC机制,使得我们开发程序变得非常简单,很多时候我们只需要管使用,而并不需要关心什么时候释放资源。但是,GC有的时并不是按照我们所期望的方式工作。 例如,我想实现一个在窗口的标题栏中实时显示当前的时间,一个比较常规的做法如下:     var...
1177 0
|
C#
WPF Label控件在数据绑定Content属性变化触发TargetUpdated事件简单实现类似TextChanged 事件效果
原文:WPF Label控件在数据绑定Content属性变化触发TargetUpdated事件简单实现类似TextChanged 事件效果   本以为Label也有TextChanged 事件,但在使用的时候却没找到,网友说Label的Content属性改变肯定是使用赋值操作,赋值的时候就可以对其进行相应的操作所以不需TextChanged 事件。
2101 0
|
C#
WPF响应长按事件
原文:WPF响应长按事件 版权声明:本文为博主原创文章,转载请注明出处。 https://blog.csdn.net/lwwl12/article/details/78983140 ...
1518 0
|
C# Windows 对象存储
WPF 路由事件 Event Routing
原文:WPF 路由事件 Event Routing 1.路由事件介绍 之前介绍了WPF的新的依赖属性系统,本篇将介绍更高级的路由事件,替换了之前的.net普通事件。
1318 0
|
C# 数据可视化 容器
WPF触屏Touch事件在嵌套控件中的响应问题
原文:WPF触屏Touch事件在嵌套控件中的响应问题 前几天遇到个touch事件的坑,记录下来以增强理解。 具体是 想把一个listview嵌套到另一个listview,这时候如果list view(子listview)的内容过多超过容器高度,它是不会出现滚动条压缩内容区域的,反而会将滚动区域转移到外面的list view(父listview),这个无可争议,但这个问题开始没留意,为待会的坑埋下伏笔。
1052 0
|
C# 前端开发
WPF当属性值改变时利用PropertyChanged事件来加载动画
原文:WPF当属性值改变时利用PropertyChanged事件来加载动画     在我们的程序中,有时我们需要当绑定到UI界面上的属性值发生变化从而引起数据更新的时候能够加载一些动画,从而使数据更新的效果更佳绚丽,在我们的程序中尽量将动画作为一种资源放在xaml中,而不是在后台中通过写代码的这种方式来加载动画,在我们的这篇博客中我们尽量使用简洁的语言来阐述这一方法。
1532 0
|
.NET C# 开发框架
WPF - 善用路由事件
原文:WPF - 善用路由事件   在原来的公司中,编写自定义控件是常常遇到的任务。但这些控件常常拥有一个不怎么好的特点:无论是内部还是外部都没有使用路由事件。那我们应该怎样宰自定义控件开发中使用路由事件?我们将在这篇短文中对该问题进行讨论。
932 0