然后在看看生成的窗口:

相信你一定可以看明白,知道Grid是把窗体分成了一块块的网格,而分割这个功能是通过Grid.RowDefinitions和Grid.ColumnDefinitions两组属性定义的,分别在其中定义了行和列,将窗体分为了几行几列,行的高度和列的宽度可以根据Width属性设置。
如上图,利用xaml定义了一个两行两列的Grid,并且在第0行0列放置btn1(如不显示定义,则拖入的控件默认放在此网格。),第1行1列放置了btn2.
关于网格属性做以下几个说明。
RowDefinition 表示网格的行,其只有一个Height属性而没有Width属性,*表示该行占据窗体剩下的所有的高度,如都设为*则表示平分窗体。如上所示,你还可以让窗体3:1,只要将两个行定义分别设置为3*和*就可以了。
ColumnDefinition 表示网格的列,其中只有一个Width属性而没有Height属性,*号的用法同RowDefinition的用法,不过相对RowDefinition分割窗体的高度而言,在这里*表示分割窗体的宽度。
可以说,Grid实现的是一种网格布局,这种布局是相当强大的,可以并且用起来也非常灵活。
3、 StackPanel
StackPanel布局遵循的默认原则是从窗口中间部位,从顶部开始,从上到下排列控件。先看下面代码:
<StackPanel>
<Button Name='btn1' Height='40' Width='40' Content='btn1' />
<Button Name='btn2' Height='40' Width='40' Content='btn2' />
</StackPanel>
表现出来的窗体如下:

如上图所示,控件的布局默认是竖向布局,那么如何设置控件横向布局呢?我们只需要设置StackPanel的Orientation属性就可以了:
Orientation='Horizontal' 横向布局,从窗体中部,左侧开始从左向右排列控件。
Orientation='Vertical'纵向布局,默认属性。
横向布局的实例如下:
<StackPanel Orientation='Horizontal'>
<Button Name='btn1' Height='40' Width='40' Content='btn1' />
<Button Name='btn2' Height='40' Width='40' Content='btn2' />
</StackPanel>
窗口显示:

4、 DockPanel
Dockpanel默认布局原则,从左中位置开始,控件依次排列,最后一个控件将剩余区域从中心填充。看下面代码:
<DockPanel>
<Button Name='btn1' Height='40' Width='40' Content='btn1' />
<Button Height='40' Width='40' Content='btn2' />
<Button Height='40' Width='40' Content='btn2' />
<Button Height='40' Width='40' Content='btn2' />
<Button Height='40' Width='40' Content='btn2' />
<Button Height='40' Width='40' Content='btn2' />
</DockPanel>










