1、用XML文件定义Ribbon界面为Ribbon界面添加按钮控件按钮控件 可以说是我们最常用的控件了。在Ribbon界面中,按钮控件有多种形式,主要有普通按钮(Button),复选框(CheckBox),下拉按钮 (DropDownButton)以及切换按钮(ToggleButton)等,可见为Ribbon界面添加按钮控件是我们对Ribbon界面进行设计的 基本功。虽然Visual Studio 2010没有提供针对Scenic Ribbon界面编辑的可视化设计工具,但是通过对Ribbon界面XML文件的编辑来实现控件的添加和定义也十分简单。我们还是在上文例子的基础上,实现按钮控件的添加。我们可
2、以打开Ribbon界面描述文件ribbonmarkup.xml,然后在其中的命令部分添加下面的语句,定义相应的按钮控件:普通按钮这是一个普通按钮。下拉按钮这是一个下拉按钮。切换按钮这是一个切换按钮。复选按钮Command.TooltipTitle这是一个复选按钮。 在这里,我们定义了多种按钮控件:普通按钮,下拉按钮,切换按钮和复选框按钮。同时为了对这些按钮控件进行管理,我们还定义了一个组控件 GroupButton。对于GroupButton,我们只是简单地给定了它的ID和符号。而对于NormalButton等按钮控件,我们通过XML 文件,指定了这些按钮控件的具体属性,比如按钮的按钮上显示的
3、文字,工具栏提示,按钮显示的图片等等。通过XML文件,我们可以对各个控件的属性进行详细 的定义,完全根据我们的需要对控件进行自定义。完成控件的定义后,我们就可以将这些控件布局到Ribbon面板上了。继续在xml文件中的视图(View)部分编辑代码,实现各个控件的排布:在这段视图部分的XML代码中,我们可以很清楚地看到各个空间之间的嵌套关系:TabHome这个 Tab页面包含一个GroupButton这个组,而这个组又包含DropDownButton,NormalButton,ToggleButton和 CheckBox这几个子按钮控件。更进一步的,DropDownButton又包含了Norma
4、lButton和TonggleButton这两个子按 钮控件。通过这种层层嵌套,我们就实现了各个子控件的布局。现在我们编译运行这个解决方案,就可以看到我们刚刚添加的Ribbon界面了:使用控件布局模板在上面的例子中,我们将多个按钮控件都添加到了一个组控件中。在这个组控件内部,各个按钮控件是按照怎样的规则进行布局的呢?能不能对默认的布局进行控制? 为了对一个控件容器内部的各个控件进行布局,Scenic Ribbon提供了相应的布局模板。在一个控件容器,例如上文中我们用到的Group控件,对控件进行排布时,Scenic Ribbon会按照我们在XML文件中定义的布局模板来对控件进行排布。在XML中
5、,我们使用SizeDefinition属性来定义容器所使用的布局模 板,例如:这行代码就表示使用“ThreeButtonsAndOneCheckBox”作为这个组容器的布局模板,表示这个组内部一共有三个按钮和一个复选框。为了便于我们的使用,Scenic Ribbon为我们提供了很多已经预先定义好的布局模板,例如我们常用的有:处理这些预先定义的布局模板之外,针对一些特殊需要,我们还可以自定义布局目标,实现更加灵活的控制。例如,下面的代码简单地自定义了一个布局模板: 在这个自定义布局模板中,我们定义了控件在不同显示状态(Large,Medium,Small)下,图标的尺寸和标签文本的显示与否。这样
6、,我们就可以对控件的外观进行非常细致的控制,满足用户体验设计师的苛刻要求。设置控件的缩放策略 在上文的自定义布局模板中,我们定义了控件在不同状态下的显示尺寸。当我们在缩放窗口的时候,Ribbon面板的尺寸会相应的改变,这时,Ribbon 控件的尺寸和排布也会发生相应的变化。Ribbon控件的大小以及排布方式,都受到Tab页面控件缩放策略的控制。在Ribbon界面中,每个Tab页面 都有独立的控件缩放策略,我们可以通过定义Tab页面的缩放策略来控制按钮的大小以及在面板尺寸发生变化时候,如何对控件进行重新排布。为了展示Tab页 面缩放策略对控件尺寸和排布的控制,我们在Ribbon面板中在添加多个按
7、钮,并实现不同的组使用不同的重排次序。首先我们在XML文件的命令部分(Commands)添加相应的控件描述:按钮控件点击这个按钮控件,获得当前系统时间。DatabaseAdd TableAdd TableDelete TableDelete TablePrint RelationshipsPrint RelationshipsClipboardPastePasteCutCutCopyCopy在上面的代码中,我们定义了控件的各种属性,现在要将这些控件布置到Ribbon面板上,则需要Tab页面的缩放策略来控制了。所以,我们在XML文件的视图部分对控件进行布置并设置缩放策略:!-定义控件的嵌套关系我们使用组的SizeDefinition属性定义
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1