RibbonX主要控件介绍(3)
本文将介绍库(gallery)控件。该控件是新Office 2007用户界面中最重要的控件之一,并且已公开了大量核心库功能,便于用户使用在自已的基于Office解决方案之中。
库的目的是将功能积累到库中供选择,以便于用户只需一次单击就能得到相同的结果。
在下面将介绍的示例加载项中,模仿了一个库,允许一次单击就能插入图片,而不需要打开对话框,再导航到文件树并选择图像。在Word的“插入”选项卡中“插图”组之后的放置该库,因为它与周围的功能最适合。
图1:自然图片库
<gallery id=”nature”
label=”Nature Photos”
size=”large”
imageMso=”FlyoutAnchorMovie”
onAction=”nature_OnAction”
getItemCount=”nature_getItemCount”
getItemImage=”nature_getItemImage”
getItemLabel=”nature_getItemLabel”
showItemLabel=”false”/>
库与菜单是相似的,可以大也可以小。在本例中,运用imageMso属性使用了大的内置的图标。控件使用回调来指定动态的属性,如标签,在某些情况下为控件的内容。库控件要求为项目回调以填充库,除非该库只包含静态的声明项目。在上面的示例中,回调返回150×150像素的PNG图像,为每个项目转换为IpictureDisp。
库控件最灵活的功能之一是能够自动调整图像。使用在示例中原始的PNG图像是150×150像素。通过指定新的itemHeight和itemWidth,该库将调整图像。同时也改变了getItemCount回调的返回值来返回16个项目代替9个项目。该库创建了一个4×4栅格,带有16个项目的组。
图2:更小的图像但有16个项目
<gallery id=”nature”
label=”Nature Photos”
size=”large”
imageMso=”FlyoutAnchorMovie”
onAction=”nature_OnAction”
getItemCount=”nature_getItemCount”
getItemImage=”nature_getItemImage”
getItemLabel=”nature_getItemLabel”
itemHeight=”75″
itemWidth=”75″
showItemLabel=”false”/>
当然,也可以按比例增加图像。在下一个示例中,库将图像由150×150像素扩大到200×200像素。
也可以指定库显示的行和列数。在本例中,只获取1列和2行。
图3:按比例增加图像,设置行和列
<gallery id=”nature”
label=”Nature Photos”
size=”large” imageMso=”FlyoutAnchorMovie”
onAction=”nature_OnAction”
getItemCount=”nature_getItemCount”
getItemImage=”nature_getItemImage”
getItemLabel=”nature_getItemLabel”
itemHeight=”200″
itemWidth=”200″
rows=”2″
columns=”1″
showItemLabel=”false”/>
也可以选择在库项目中显示标签。下面的示例在每个项目中包含了标签,重新调整图像以成为更小,并设置显示10行。
图4:在库项目中显示标签
<gallery id=”nature”
label=”Nature Photos”
size=”large”
imageMso=”FlyoutAnchorMovie”
onAction=”nature_OnAction”
getItemCount=”nature_getItemCount”
getItemImage=”nature_getItemImage”
getItemLabel=”nature_getItemLabel”
itemHeight=”20″
itemWidth=”20″
rows=”10″
columns=”1″
showItemLabel=”true”/>
像Office 2007中的一些内置库一样,也可以在库的底部添加按钮。一般这些按钮配置在库中显示什么或者打开一个相关的设置对话框。
图5:库底部的按钮
<gallery id=”nature”
label=”Nature Photos”
size=”large”
imageMso=”FlyoutAnchorMovie”
onAction=”nature_OnAction”
getItemCount=”nature_getItemCount”
getItemImage=”nature_getItemImage”
getItemLabel=”nature_getItemLabel”
rows=”2″
columns=”2″
showItemLabel=”false”>
<button id=”b222″
imageMso=”Save”
label=”Save selection to Nature Photos Server…”/>
<button id=”b229″
imageMso=”Dollar”
label=”Purchase more photos…”/>
</gallery>
本文整理自:http://blogs.msdn.com/jensenh/archive,只是对其进行了初步翻译,仅供研读参考。

发表评论