简单记录几个wpf学习上的问题[布局]
自从写了prism的学习资料之后从没写过wpf的程序,最近玩wow,琢磨着写一个插件下载器,开始用winform写好了,感觉有点丑,心想,为什么不用wpf呢?于是就有了这个项目。
好吧,以下简单记录下自己开发这个项目上遇到的一些问题
整体布局可以使用 Grid
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是横向排列的,默认控件是从左侧依次往右排列)
至此,基本就能定义一个页面布局了