如何创建像文本填充一样拆分Office功能区按钮

时间:2012-06-29 12:16:28

标签: user-interface vsto ms-office ribbon

我想在Microsoft Office中创建一个功能区按钮来重现行为,例如“文本填充”按钮。它分为两个区域,左侧(红色)将执行默认/最后一个操作,右侧(蓝色)提供其他功能。

TextFill

我最接近的是splitButton使用buttonmenu。但是这里有一个带有文本的大按钮用于默认操作,只有一个带有三角形的小区域用于访问下拉菜单。以下是功能区代码和生成的按钮:

<splitButton id="SplitButton1" size="normal" >
  <button id="MenuButton1" imageMso="TextFillColorPicker" label="Text Fill" />
  <menu id="Menu1" label="Label1" itemSize="normal" showLabel="true">
    <button id="MenuButton2" label="Label2" />
  </menu>
</splitButton>

enter image description here

出于可用性原因,我希望将(视觉)焦点保持在下拉部分,如图所示。任何想法怎么做?

4 个答案:

答案 0 :(得分:0)

声明splitButton时,将size属性设置为“small”

答案 1 :(得分:0)

我认为ControlSize proeprty只有2个选项,包括Regular或Large。因此,只需使用常规尺寸,然后将图像添加到分割按钮即可。

有关详细信息,请参阅此API:
http://msdn.microsoft.com/en-us/library/microsoft.office.tools.ribbon.ribbonsplitbutton.controlsize

带有Ribbon XML的自定义UI的示例

<splitButton id="splitButton"> 
     <button id="splitButton__btn" imageMso="AlignLeft" label="SplitButton" onAction="splitButton_Click" /> 
     <menu id="splitButton__mnu"> 
     <button id="btnAlignLeft" imageMso="AlignLeft" onAction="btnAlign_Click" label="Left" /> 
      </menu> 
</splitButton> 

MSDN上的功能区XML
http://msdn.microsoft.com/en-us/library/aa942866.aspx
http://msdn.microsoft.com/en-us/library/gg327872

也许您可能想尝试<MenuSection>代码

<MenuSection
 DisplayMode=["Default" | "Small" | "Medium"  | "Large"  | "Text"  | "Menu"  | "Menu16"  | "Menu32"  | "Thin"]
 Id="String"
 MaxHeight="String"
 Scrollable="true"
 Sequence="Integer"
 Title="String">
 [<Controls /> | <Gallery />]
</MenuSection>

似乎您可以定义不同类型的显示模式。

http://msdn.microsoft.com/en-us/library/gg334378.aspx

答案 2 :(得分:0)

由于自定义限制,我认为不可能做你想做的事情......但你可以尝试定义一个框而不是splitButton:

<box id="BoxSplit" boxStyle="horizontal">
  <button id="MenuButton1" imageMso="TextFillColorPicker" />
  <menu id="Menu1" label="Text Fill" itemSize="normal" showLabel="true">
    <button id="MenuButton2" label="Label2" />
  </menu>
</box>

这会给您以下结果:

box with button and menu, hovering button

box with button and menu, hovering button

如您所见,问题是现在菜单和按钮没有一起突出显示。我希望这对你来说是可以接受的......

答案 3 :(得分:0)

如果您需要准确再现功能区中的原始按钮,则可以使用以下代码:

<control idMso="FontColorPicker" imageMso="FontColorPicker"/>

(我环顾四周找到了这个,我找不到任何信息,所以我发现它可能对某人有用了一天)