在这段视图部分的XML代码中,我们可以很清楚地看到各个空间之间的嵌套关系:TabHome这个Tab页面包含一个GroupButton这个组,而这个组又包含DropDownButton,NormalButton,ToggleButton和CheckBox这几个子按钮控件。更进一步的,DropDownButton又包含了NormalButton和TonggleButton这两个子按钮控件。通过这种层层嵌套,我们就实现了各个子控件的布局。
现在我们编译运行这个解决方案,就可以看到我们刚刚添加的Ribbon界面了:
使用控件布局模板
在上面的例子中,我们将多个按钮控件都添加到了一个组控件中。在这个组控件内部,各个按钮控件是按照怎样的规则进行布局的呢?能不能对默认的布局进行控制?
为了对一个控件容器内部的各个控件进行布局,Scenic Ribbon提供了相应的布局模板。在一个控件容器,例如上文中我们用到的Group控件,对控件进行排布时,Scenic Ribbon会按照我们在XML文件中定义的布局模板来对控件进行排布。在XML中,我们使用SizeDefinition属性来定义容器所使用的布局模板,例如:
<Group CommandName='GroupButton' SizeDefinition='ThreeButtonsAndOneCheckBox'>
这行代码就表示使用“'ThreeButtonsAndOneCheckBox'”作为这个组容器的布局模板,表示这个组内部一共有三个按钮和一个复选框。为了便于我们的使用,Scenic Ribbon为我们提供了很多已经预先定义好的布局模板,例如我们常用的有: