2012-06-29 2 views
2

Я хотел бы создать кнопку ленты в Microsoft Office, которая воспроизводит поведение, например. кнопки «Text Fill». Он разделен на две области, где левый (красный) будет выполнять действие по умолчанию/последнему, а правый (синий) предлагает дополнительные функции.Как создать разделительную кнопку ленты ленты, например Text Fill

TextFill

Ближайший я использовал splitButton с button и menu. Но здесь вы получите большую кнопку с текстом для действия по умолчанию и только небольшую область с треугольником для доступа к выпадающему меню. Вот код ленты и результирующая кнопка:

<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

Из соображений практичности я хотел бы сохранить (визуальное) сосредоточить внимание на выпадающем части точно, как показано на рисунке. Есть идеи, как это сделать?

ответ

0

При объявлении splitButton, установите атрибут размера для «малого»

+0

Когда я попробовал, эта Visual Studio сообщила бы мне, что атрибут «размер» недействителен »(разрешены только« нормальные »и« большие »), и моя лента не загружалась вообще. –

0

Я думаю, что есть только два варианта ControlSize proeprty, либо регулярный или крупный. Поэтому просто используйте обычный размер и добавьте изображение в свою кнопку разделения.

Пожалуйста, обратитесь к этому API для получения более подробной информации:
http://msdn.microsoft.com/en-us/library/microsoft.office.tools.ribbon.ribbonsplitbutton.controlsize

пример для пользовательского интерфейса с Ribbon XML

<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> 

Ribbon XML на MSDN
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

+0

Я действительно не думаю, что речь идет о контрольном размере. Посмотрите скриншот, который я только что добавил, который показывает, какой контроль я получаю. –

+0

Я думаю, вам, возможно, придется настраивать пользовательский интерфейс с помощью XML-ленты. Мой пост обновлен с небольшим примером. – woodykiddy

+1

Это похоже на подход, который я использовал, который привел меня к результату, который не совсем соответствует тому, что я пытаюсь достичь. Может быть, я вас не понимаю правильно? –

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

Как вы видите, проблема в том, что меню и кнопка не подсвечиваются вместе. Надеюсь, это приемлемо для вас ...

0

Если ваша потребность в точности воспроизвести оригинальную кнопку в вашей ленте, вы можете использовать этот код:

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

(я посмотрел вокруг, чтобы найти это, и я не мог найти любую информацию, так что я выяснилось, что это может быть полезно кому-то в один прекрасный день)

Смежные вопросы