Обзор ленты¶
Используйте RibbonControl
для создания ленточного меню, подобного тому, которое можно найти в приложениях Microsoft Office. RibbonControl
- это панель инструментов, которая организует команды и другие элементы в ряд страниц (вкладок). Страницы состоят из групп, которые, в свою очередь, отображают элементы ленты (команды, встроенные редакторы, метки, галереи и так далее).
Визуальные элементы ленты¶
RibbonControl
включает в себя следующие элементы:
-
Страницы — Страницы ленты позволяют создавать вкладки. Вы можете добавить столько страниц, сколько вам нужно. Должна быть создана, по крайней мере, одна страница.
На каждой странице отображается одна или несколько групп элементов.
-
Группы страниц — Группы ленты предоставляют логичный способ объединения наборов элементов внутри страниц. Группы разделены вертикальными линиями.
-
Кнопка приложения — Эта кнопка вызывает всплывающее окно меню приложения, которое обычно содержит команды, используемые для работы с файлами.
Кнопка приложения, если она включена, отображается перед заголовками страниц.
- Панель быстрого доступа — Эта панель инструментов обеспечивает доступ к часто используемым командам. Пользователи могут добавить команду на эту панель инструментов с помощью контекстного меню.
Панель быстрого доступа может отображаться над страницами ленты или под ними.
-
Элементы заголовка страницы — Вы можете отображать элементы ленты на правом краю ленты, в линии с заголовками страниц. Коллекция, в которой хранятся эти элементы, называется Элементами заголовка страницы.
-
Кнопка выбора размещения команд на ленте — Эта кнопка отображает меню, которое позволяет пользователю переключаться между классическим и упрощенным размещением команд на ленте.
Команда Classic
"Размещение" размещает элементы ленты в три ряда:
В размещении Simplified
используется один ряд элементов:
Обратитесь к разделу Размещение команд на ленте для получения дополнительной информации.
Демо¶
Смотрите демонстрационное приложение Eremex для контролов для примеров, демонстрирующих функции RibbonControl
в действии.
Создание пользовательского интерфейса на ленте¶
Вкратце, создание ленточного пользовательского интерфейса состоит из следующих этапов:
- Создайте файл
RibbonControl
. - Добавьте страницы ленты (вкладки) на ленту.
- Добавьте к страницам группы страниц на ленте.
- Добавьте элементы ленты (команды, галереи и т.д.) в группы страниц.
Вы также можете добавить элементы ленты в Область заголовка страницы , Панель быстрого доступа , всплывающие меню и подменю.
Определите RibbonControl¶
RibbonControl
- это многофункциональная панель инструментов. Как традиционные панели инструментов, RibbonControl
управляется компонентом ToolbarManager
.
Совет
The ToolbarManager
component can manage not only RibbonControl
. You can use this component to create traditional toolbars (for instance, a status bar) and context menus for controls.
Чтобы создать RibbonControl
, определите его внутри компонента ToolbarManager
.
<mxb:ToolbarManager IsWindowManager="True">
<mxr:RibbonControl Name="ribbon1">
<!-- ... -->
</mxr:RibbonControl>
</mxb:ToolbarManager>
Определение страниц ленты и доступ к ним¶
"Страницы" ленты (вкладки) инкапсулированы классом RibbonPage
.
Чтобы добавить страницы ленты в XAML, определите объекты <RibbonPage> в качестве содержимого тега <RibbonControl>. Чтобы добавлять страницы ленты в коде и получать к ним доступ, используйте коллекцию RibbonControl.Pages
.
<mxb:ToolbarManager IsWindowManager="True">
<mxr:RibbonControl>
<mxr:RibbonPage Header="Home" KeyTip="H">
<!-- ... -->
</mxr:RibbonPage>
<mxr:RibbonPage Header="View" KeyTip="V">
<!-- ... -->
</mxr:RibbonPage>
<mxr:RibbonPage Header="Design" KeyTip="S">
<!-- ... -->
</mxr:RibbonPage>
</mxr:RibbonControl>
</mxb:ToolbarManager>
Определение групп страниц ленты и доступ к ним¶
"Группы страниц" ленты инкапсулируются классом RibbonPageGroup
. Они являются дочерними элементами страниц ленты.
Чтобы создать группы страниц в XAML, определите объекты <RibbonPageGroup> как содержимое элементов <RibbonPage>. Чтобы добавлять группы страниц в коде и получать к ним доступ, используйте коллекцию RibbonPage.Groups
.
<mxr:RibbonPage Header="Home" KeyTip="H" Name="pageHome">
<mxr:RibbonPageGroup Header="File" IsHeaderButtonVisible="True">
<!-- ... -->
</mxr:RibbonPageGroup>
<mxr:RibbonPageGroup Header="Clipboard" IsHeaderButtonVisible="True">
<!-- ... -->
</mxr:RibbonPageGroup>
<mxr:RibbonPageGroup Header="Font" IsHeaderButtonVisible="True">
<!-- ... -->
</mxr:RibbonPageGroup>
</mxr:RibbonPage>
Определите элементы ленты (команды, подменю, галереи и так далее).¶
Элементы ленты - это базовые элементы, которые вы можете добавить в пользовательский интерфейс ленты (группы страниц ленты, панель быстрого доступа и коллекция элементов заголовка страницы). Они включают в себя:
- Кнопки (
ToolbarButtonItem
) — кнопка обычного или всплывающего окна.
Обычная кнопка выполняет команду (ToolbarButtonItem.Command
) и события (Click
и Press
) при нажатии.
Вы также можете привязать к кнопке контрол всплывающего окна. Этот контрол будет отображаться, когда пользователь нажимает кнопку или встроенную стрелку вниз.
Контрол ленты позволяет вам указать размер отображения для кнопок. Вы можете использовать attached-свойство RibbonControl.DisplayMode
, чтобы выбрать между большим размером, маленьким размером с текстом и маленьким размером без текста.
- "Кнопки—переключатели" (
ToolbarCheckItem
) - кнопка, поддерживающая два состояния - нормальное и нажатое. Состояние кнопки определяется свойствомToolbarCheckItem.IsChecked
. СобытиеToolbarCheckItem.CheckedChanged
срабатывает, когда изменяется состояние нажатия кнопки "Проверить".
- Подменю (
ToolbarMenuItem
) — Отображает подменю по щелчку мыши.
- Встроенный редактор (
ToolbarEditorItem
) — Отображает встроенный редактор, указанный свойствомToolbarEditorItem.EditorProperties
. Например, вы можете встроить SpinEditor или TextEditor в пользовательский интерфейс ленты.
- Текстовая метка (
ToolbarTextItem
) — Отображает статический текст, указанный свойствомToolbarTextItem.Header
.
- Группа элементов (
ToolbarItemGroup
) — неразрывная группа элементов.
Функция адаптивного размещения на ленте автоматически сворачивает и восстанавливает элементы при изменении размера контрола. Группы функционируют как единое целое. При изменении размера ленты можно свернуть только всю группу, а не отдельные ее элементы.
- Группа переключающих кнопок (
ToolbarCheckItemGroup
) — Неразрывная группа переключающих кнопок (объектыToolbarCheckItem
). КлассToolbarCheckItemGroup
позволяет создавать группу взаимоисключающих элементов (radio group) и группу, которая позволяет нажимать на несколько элементов одновременно.
- Разделитель (
ToolbarSeparatorItem
) — Отображает разделитель между элементами ленты.
- Галерея (
RibbonGalleryItem
) — Галерея элементов. Используйте свойствоRibbonGalleryItem.ItemsSource
, чтобы указать список объектов, которые будут отображаться как элементы галереи.
В галерее на ленте есть кнопка "всплывающее окно", которая активирует просмотр галереи в всплывающем окне. Галерея всплывающего окна может отображать дополнительные команды внизу, указанные свойством RibbonGalleryItem.DropDownItems
.
Все элементы ленты, перечисленные выше, являются потомками класса ToolbarItem
.
Они также могут быть добавлены к традиционным панелям инструментов и контекстным меню.
Чтобы добавить элементы в группы страниц ленты, определите соответствующие элементы ленты между начальным и конечным тегами <RibbonPageGroup>. Чтобы добавлять элементы ленты в коде и получать к ним доступ, используйте коллекцию RibbonPageGroup.Items
.
Следующий фрагмент кода добавляет четыре обычные кнопки (объекты ToolbarButtonItem
) в группу Clipboard. Вы можете найти полный код в демо-версии WordPad Example.
<mxr:RibbonPageGroup Header="Clipboard" IsHeaderButtonVisible="True">
<mxb:ToolbarButtonItem Header="Paste" KeyTip="PA" Glyph="{x:Static icons:Basic.Paste}"
mxr:RibbonControl.DisplayMode="Large"
DropDownArrowVisibility="ShowSplitArrow">
<mxb:ToolbarButtonItem.DropDownControl>
<mxb:PopupMenu>
<mxb:ToolbarButtonItem Header="Paste Special" KeyTip="PS"
Glyph="{x:Static icons:Basic.Paste}"
Command="{Binding PasteSpecialCommand}"/>
<mxb:ToolbarButtonItem Header="Set Default Paste..." KeyTip="SP"
Command="{Binding SetDefaultPasteCommand}"
/>
</mxb:PopupMenu>
</mxb:ToolbarButtonItem.DropDownControl>
</mxb:ToolbarButtonItem>
<mxb:ToolbarButtonItem Header="Cut" KeyTip="CT"
Glyph="{x:Static icons:Basic.Cut}" Command="{Binding CutCommand}"/>
<mxb:ToolbarButtonItem Header="Copy" KeyTip="CP"
Glyph="{x:Static icons:Basic.Copy}" Command="{Binding CopyCommand}"/>
<mxb:ToolbarButtonItem Header="Paste" KeyTip="P"
Glyph="{x:Static icons:Basic.Paste}" Command="{Binding PasteCommand}"/>
</mxr:RibbonPageGroup>
Дополнительные сведения см. в следующих разделах:
Поддержка шаблонов проектирования MVVM¶
Ленточный контрол поддерживает шаблон проектирования MVVM, позволяющий создавать страницы, группы страниц и элементы (в группах страниц, панели быстрого доступа и области заголовка страницы) из коллекций бизнес-объектов, определенных в модели представления. Следующие свойства поддерживают шаблон проектирования MVVM:
RibbonControl.PagesSource
— Коллекция бизнес-объектов, используемых для заполнения страниц ленточного контрола. Соответствующие шаблоны данных должны определять объектыRibbonPage
.RibbonPage.GroupsSource
— Коллекция бизнес-объектов, используемых для заполнения групп на страницах ленты. Соответствующие шаблоны данных должны определять объектыRibbonPageGroup
.RibbonPageGroup.ItemsSource
— Коллекция бизнес-объектов, используемых для создания элементов ленты в группах страниц. Соответствующие шаблоны данных должны определять элементы ленты .RibbonControl.QuickAccessToolbarItemsSource
— Коллекция бизнес-объектов, используемых для создания элементов ленты на Панели быстрого доступа . Соответствующие шаблоны данных должны определять элементы ленты .RibbonControl.PageHeaderItemsSource
— Коллекция бизнес-объектов, используемых для создания Элементов заголовка страницы . Соответствующие шаблоны данных должны определять элементы ленты .ToolbarMenuItem.ItemsSource
— Коллекция бизнес-объектов, используемых для заполнения подменю элементами. Соответствующие шаблоны данных должны определять элементы ленты.
* Эта страница была создана автоматически с помощью сервиса машинного перевода Яндекс Переводчик.