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

838

被折叠的 条评论
为什么被折叠?



