这个容器的意思很简单,就是以堆跌的方式显示其中的东西。实际操作起来却很头疼,第一次看WPF感觉跟flex那一套mxml很像,以下是我第一次研究WPF容器布局中的stack的一点记录,给自己看的:
怎么堆叠呢? 就好像flex里设置了界面布局的水平布局,竖直布局,结对位置那些属性是一样的,orientation属性就对应这flex里面的那些属性。正式开始:
一、定义容器内部控件的外边沿(flex要叫组件,WPF要叫控件。)
1.统一设置:margin=“10”,这意思也就是说,上下左右边沿都是10。
2.分别设置:madgin=“10,20,30,40”,按顺序左,上,右,下的分别的值。
3.使用拆分方式设定(意思就是分别设定每个控件):这个就涉及到之前那个书里提到的所谓的“附加属性”,看一下例子。
<Button content="button1">
<Button.Margin>
<Thickness top="10" bottom="20" left="30" right="40"/> /*这个意思跟分别设置是一样的,只不过这个是针对容器里面的一个控件的,这样很灵活,但也很麻烦*/
</Button.Margin>
</Button>
注意:如果用margin属性达不到效果,那就用老办法,直接设置width,height属性(控件的大小固定之后对窗口的缩放效果很不利,所以视情况而定)。
二、设置对齐方式
当控件放到容器里的时候,出了设置margin之外,跟重要的是考虑控件是“挤”在哪边?比如说控件竖直排列的时候,控件是靠朝上面呢?还是线面?
1.HorizontalAlignment:这个属性的前提是Orientation属性与之对应,可以设置成left,right,center。
2.VerticalAlignment:这个属性的前提是Orientation属性与之对应,可以设置成top,bottom,center。
三、控件随窗体大小的改变
在没有设置控件的大小时控件自适应容器的大小,这样或出现一个不好的情况,当窗口非常大的时候,控件也会变得很大。窗口很小时,控件基本看不见。
所以可以再控件上引入4个属性:maxwidth、minwidth、maxheight、minheight。再更改窗体的大小时控件随之更改大小,但是有最大值和最小值的限制。
具体怎么搞,弄个例子试试,例子很简单,不好意思上传啦。提供着:www.kmuser.com