上一章我们介绍了重要的Grid面板,还展示了一些如何使用它的例子。这一章我们来做一些更深入的研究,这正是Grid真正闪光的地方。首先,加入更多的行和列,实现一个真正的表格布局。
<span style="font-size:14px;"><Window x:Class="WpfTutorialSamples.Panels.TabularGrid"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="TabularGrid" Height="300" Width="300">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="2*" />
<ColumnDefinition Width="1*" />
<ColumnDefinition Width="1*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="2*" />
<RowDefinition Height="1*" />
<RowDefinition Height="1*" />
</Grid.RowDefinitions>
<Button>Button 1</Button>
<Button Grid.Column="1">Button 2</Button>
<Button Grid.Column="2">Button 3</Button>
<Button Grid.Row="1">Button 4</Button>
<Button Grid.Column="1" Grid.Row="1">Button 5</Button>
<Button Grid.Column="2" Grid.Row="1">Button 6</Button>
<Button Grid.Row="2">Button 7</Button>
<Button Grid.Column="1" Grid.Row="2">Button 8</Button>
<Button Grid.Column="2" Grid.Row="2">Button 9</Button>
</Grid>
</Window></span>
一共9个按钮,排布在三行三列的表格中。我们又使用到了带“*”号的宽度,这次还加了一个数字。第一行的高度是2*,第一列的宽度的也是2*。它表示它们所占的空间两倍于1*的行和列(1*和*是一样的)。
我使用了附加属性Grid.Row和Grid.Column将控件放入对应的网格里,同样的,在第一行或者第一列的控件可以省略这两个属性。如果不省略,那么定义成0也是一样的。省略的好处是你不需要在打字了,当然如果为了整体好看,也可以加上,完全看你的选择。