Silverlight实现显示表格和打印

来源:互联网 发布:mysql 如何拆表 编辑:程序博客网 时间:2024/05/01 11:56

              silverlight显示表格还是比较纠结的,可以考虑用多个BORDER来实现。

 

前台代码:

<UserControl x:Class="SilverlightApplication1.MainPage"
    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"
    d:DesignHeight="300" d:DesignWidth="400">

    <Grid x:Name="LayoutRoot" Background="White" Margin="10,10,10,10">
      <Grid.RowDefinitions>
        <RowDefinition Height="50" />
        <RowDefinition  />
        <RowDefinition />
        <RowDefinition />
        <RowDefinition />
        <RowDefinition />
        <RowDefinition />
        <RowDefinition />
      </Grid.RowDefinitions>
      <Grid.ColumnDefinitions>
        <ColumnDefinition />
        <ColumnDefinition />
      </Grid.ColumnDefinitions>
     
      <TextBlock Text="单据" FontSize="15" Grid.ColumnSpan="2" Grid.Row="0" TextAlignment="Center" />
      <Grid Grid.Row="1" Grid.ColumnSpan="2" x:Name="grdPrint">
        <Grid.RowDefinitions>
          <RowDefinition></RowDefinition>
          <RowDefinition></RowDefinition>
        </Grid.RowDefinitions>
        <Grid.ColumnDefinitions>
          <ColumnDefinition></ColumnDefinition>
          <ColumnDefinition></ColumnDefinition>
          <ColumnDefinition></ColumnDefinition>
          <ColumnDefinition></ColumnDefinition>
          <ColumnDefinition></ColumnDefinition>
          <ColumnDefinition></ColumnDefinition>
        </Grid.ColumnDefinitions> 
            <Border BorderThickness="1,1,1,1" Grid.Row="0" Grid.Column="0" BorderBrush="Black" ><TextBlock Text="操作人" /></Border>
            <Border BorderThickness="0,1,1,1" Grid.Row="0" Grid.Column="1" BorderBrush="Black" ><TextBlock Text="单位" /></Border>
            <Border BorderThickness="0,1,1,1" Grid.Row="0" Grid.Column="2" BorderBrush="Black" ></Border>
            <Border BorderThickness="0,1,1,1" Grid.Row="0" Grid.Column="3" BorderBrush="Black" ></Border>
            <Border BorderThickness="1,0,1,1" Grid.Row="1" Grid.Column="0" BorderBrush="Black" ></Border>
            <Border BorderThickness="0,0,1,1" Grid.Row="1" Grid.Column="1" BorderBrush="Black" ></Border>
            <Border BorderThickness="0,0,1,1" Grid.Row="1" Grid.Column="2" BorderBrush="Black" ></Border>
            <Border BorderThickness="0,0,1,1" Grid.Row="1" Grid.Column="3" BorderBrush="Black" ></Border>
      </Grid>
      <Button x:Name="btnPrint" Grid.Row="10" Content="打印" />
    </Grid>
</UserControl>

 

后台代码:

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.Printing;

namespace SilverlightApplication1
{
    public partial class MainPage : UserControl
    {
        PrintDocument print;
        public MainPage()
        {
            InitializeComponent();
            print = new PrintDocument();
            btnPrint.Click += new RoutedEventHandler(btnPrint_Click);
            print.PrintPage += new EventHandler<PrintPageEventArgs>(print_PrintPage);
        }

        void btnPrint_Click(object sender, RoutedEventArgs e)
        {
            print.Print("单据打印");

        }

        void print_PrintPage(object sender, PrintPageEventArgs e)
        {
            e.PageVisual = grdPrint;  //打印该控件

        }
    }
}

 

 

这里实现GRID的时候要注意边框重复。所以有的框BORDER为0

 

 

0 0