微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

参考《风云的银光志Silverlight4.0教程之打印报表和图形》实现

代码

<navigation:Page x:Class="SLApplicationMadaming.views.第2部分调试.Page_Print" 
           xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
           xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
           xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
           xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
           mc:Ignorable="d"
           xmlns:navigation="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Navigation"
           d:DesignWidth="640" d:DesignHeight="480"
           Title="Page_Print Page">
    <Grid x:Name="LayoutRoot">
            <Grid.RowDeFinitions>
            <RowDeFinition ></RowDeFinition>
            <RowDeFinition></RowDeFinition>
            <RowDeFinition Height="40"></RowDeFinition>
        </Grid.RowDeFinitions>
            <!--简单的报表-->
            <Border BorderBrush="Black" BorderThickness="1">
                <Grid x:Name="reportGrid" Grid.Row="0" ShowGridLines="True">
                    <Grid.Resources>
                        <Style targettype="TextBlock">
                            <Setter Property="VerticalAlignment" Value="Center"/>
                            <Setter Property="HorizontalAlignment" Value="Center"/>
                        </Style>
                    </Grid.Resources>
                    <Grid.RowDeFinitions>
                        <RowDeFinition Height="30"/>
                        <RowDeFinition Height="30"/>
                        <RowDeFinition Height="30"/>
                        <RowDeFinition Height="30"/>
                        <RowDeFinition Height="30"/>
                    </Grid.RowDeFinitions>
                    <Grid.ColumnDeFinitions>
                        <ColumnDeFinition Width="100"/>
                        <ColumnDeFinition Width="200"/>
                        <ColumnDeFinition Width="300"/>
                    </Grid.ColumnDeFinitions>
                    <TextBlock Text="产品编号" Grid.Row="0" Grid.Column="0"/>
                    <TextBlock Text="产品名称" Grid.Row="0" Grid.Column="1"/>
                    <TextBlock Text="产品大类" Grid.Row="0" Grid.Column="2"/>
                    <TextBlock Text="1" Grid.Row="1" Grid.Column="0"/>
                    <TextBlock Text="数码相机" Grid.Row="1" Grid.Column="1"/>
                    <TextBlock Text="相机" Grid.Row="1" Grid.Column="2"/>
                    <TextBlock Text="2" Grid.Row="2" Grid.Column="0"/>
                    <TextBlock Text="笔记本电脑" Grid.Row="2" Grid.Column="1"/>
                    <TextBlock Text="电脑" Grid.Row="2" Grid.Column="2"/>
                </Grid>
            </Border>
        <Canvas Grid.Row="1">
            <Canvas.Background>
                <LinearGradientBrush StartPoint="0 0" EndPoint="0 1">
                    <GradientStop Color="Gray" Offset="0.0"></GradientStop>
                    <GradientStop Color="White" Offset="0.50"></GradientStop>
                </LinearGradientBrush>
            </Canvas.Background>
        </Canvas>
            <!--打印按钮控件-->
            <Button x:Name="btnPrint" Grid.Row="2" Click="btnPrint_Click"    Width="100" Height="25" Content="打印报表"/>
    </Grid>
</navigation:Page>

代码

using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using System.Windows.Navigation;
using System.Windows.Printing;

namespace SLApplicationMadaming.views.第2部分调试
{
    public partial class Page_Print : Page
    {
        #region 自定义
        private System.Windows.Printing.PrintDocument pd;   

        
        #region - 方法
        #region -- 事件处理
        private void pd_PrintPage(object sender,System.Windows.Printing.PrintPageEventArgs e) 
        {
            //指定打印文档对象的页面  
            e.PageVisual = LayoutRoot;// reportGrid;  

        }
        #endregion
        #region -- 一般方法
        private void PrintSample_Loaded(object sender,RoutedEventArgs e)
        {
            //创建打印文档对象  
            pd = new System.Windows.Printing.PrintDocument();
            //创建打印事件,用于指定打印的文档对象作用的对象  
            pd.PrintPage += new EventHandler<System.Windows.Printing.PrintPageEventArgs>(pd_PrintPage);
        }
        #endregion
        #endregion
        #endregion
    

        public Page_Print()
        {
            InitializeComponent();

            //创建打印文档对象  
            pd = new System.Windows.Printing.PrintDocument();
            //创建打印事件,用于指定打印的文档对象作用的对象  
            pd.PrintPage += new EventHandler<System.Windows.Printing.PrintPageEventArgs>(pd_PrintPage);
        }

        // 当用户导航到此页面时执行。
        protected override void OnNavigatedTo(NavigationEventArgs e)
        {
        }

        private void btnPrint_Click(object sender,RoutedEventArgs e)
        {
            //定义打印的文档名称  
            //pd.DocumentName = "产品报表";
            //调用打印方法,开始打印  
            pd.Print ("产品报表");  

        }

    }
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐