简单记录几个wpf学习上的问题[布局] 整体布局可以使用 Grid 小块布局可以使用StackPanel

自从写了prism的学习资料之后从没写过wpf的程序,最近玩wow,琢磨着写一个插件下载器,开始用winform写好了,感觉有点丑,心想,为什么不用wpf呢?于是就有了这个项目。
好吧,以下简单记录下自己开发这个项目上遇到的一些问题

Grid的可以将整个界面分割成若干个小格子,像一张网格

画格子

用<Grid.ColumnDefinitions> 来定义列
要添加一列,就得在里面加一行RowDefinition
用<Grid.ColumnDefinitions> 来定义行
要添加一行,就得在里面加一行ColumnDefinition

控件在Grid中的定位

使用Grid.Row="0" 来定位在第几行 不定义默认第一行
使用Grid.Column="1" 来定义在第几列 不定义默认第一列
横跨多少列使用 Grid.ColumnSpan="2"
横跨多少行使用 Grid.RowSpan="3"

Grid的列宽

行使用 属性 RowDefinition 中的Height 来定义高度
列使用 属性 ColumnDefinition 中的Width 来定义宽度
这里还有一个比较特殊的值 就是 * ,代表剩下的所有,如果有两个行/列的大小(Height /Width )设置了,那么他们将平分剩下的空间,如果分别设置1* 2*,那么他们将按1:2的比例占用剩下的空间

控件 GridSplitter 可以用来重新定义相邻的两个单元格(cell)的大小,也可以使用布局属性中的**Span属性来定义他的长度

小块布局可以使用StackPanel

StackPanel中的控件将会按照一定的方向填充排列(顶头顶脚那种)

StackPanel的排列方式

Orientation的属性来定义其中的控件是按照横向(Horizontal)排列还是纵向(Vertical)排列

StackPanel中的控件定位

可以使用 DockPanel.Dock="Right" 来定位控件在StackPanel中的吸附位置,如果是Right,那么他将吸附到StackPanel的右侧(此时,StackPanel是横向排列的,默认控件是从左侧依次往右排列)

至此,基本就能定义一个页面布局了