c#学习之30分钟学会XAML

2019-12-30 14:51:56王旭

然后在看看生成的窗口:

XAML,c#

相信你一定可以看明白,知道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>

表现出来的窗体如下:

XAML,c#

如上图所示,控件的布局默认是竖向布局,那么如何设置控件横向布局呢?我们只需要设置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>

窗口显示:

XAML,c#

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>