Silverlight实现显示表格和打印

本文详细介绍了如何使用Silverlight技术,通过多个BORDER属性实现复杂表格布局的设计与实现,包括前台代码与后台代码的编写,以及注意事项,旨在帮助开发者解决Silverlight中显示表格时的布局问题。

              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

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值