Xamarin.Forms Панель инструментов
Класс Xamarin.FormsToolbarItem
— это специальный тип кнопки, которую можно добавить в Page
коллекцию объекта ToolbarItems
. Каждый ToolbarItem
объект будет отображаться как кнопка на панели навигации приложения. Экземпляр ToolbarItem
может иметь значок и отображаться как основной или дополнительный пункт меню. Класс ToolbarItem
наследует от MenuItem
.
На следующих снимках экрана показаны ToolbarItem
объекты на панели навигации в iOS и Android:
Класс ToolbarItem
определяет следующие свойства:
Order
ToolbarItemOrder
— это значение перечисления, определяющее, отображается лиToolbarItem
экземпляр в основном или вторичном меню.Priority
— это значение, определяющееinteger
порядок отображения элементов вPage
коллекции объектаToolbarItems
.
Класс ToolbarItem
наследует следующие обычно используемые свойства из MenuItem
класса:
Command
— это возможностьICommand
привязки действий пользователя, таких как касания пальца или щелчки, для команд, определенных в режиме просмотра.CommandParameter
— это параметрobject
, который должен передаватьсяCommand
в .IconImageSource
— это значение, определяющееImageSource
значок отображения объектаToolbarItem
.Text
— это объектstring
, определяющий отображаемыйToolbarItem
текст.
Эти свойства поддерживаются BindableProperty
объектами, поэтому ToolbarItem
экземпляр может быть целевым объектом привязок данных.
Примечание.
Альтернативой созданию панели инструментов из ToolbarItem
объектов является установка NavigationPage.TitleView
присоединенного свойства в класс макета, содержащий несколько представлений. Дополнительные сведения см. в разделе "Отображение представлений" на панели навигации.
Создание панели инструментов
Объект ToolbarItem
можно создать в XAML. IconImageSource
Свойства Text
можно задать, чтобы определить, как кнопка отображается на панели навигации. В следующем примере показано, как создать экземпляр с ToolbarItem
некоторыми общими наборами свойств и добавить его в ContentPage
ToolbarItems
коллекцию:
<ContentPage.ToolbarItems>
<ToolbarItem Text="Example Item"
IconImageSource="example_icon.png"
Order="Primary"
Priority="0" />
</ContentPage.ToolbarItems>
Этот пример приведет к ToolbarItem
тому, что объект содержит текст, значок и отображается сначала в основной области панели навигации. Можно ToolbarItem
также создать в коде и добавить в коллекцию ToolbarItems
:
ToolbarItem item = new ToolbarItem
{
Text = "Example Item",
IconImageSource = ImageSource.FromFile("example_icon.png"),
Order = ToolbarItemOrder.Primary,
Priority = 0
};
// "this" refers to a Page object
this.ToolbarItems.Add(item);
Файл, представленный свойством string
, IconImageSource
должен существовать в каждом проекте платформы.
Примечание.
Ресурсы изображений обрабатываются по-разному на каждой платформе. Может ImageSource
поступать из источников, включая локальный файл или внедренный ресурс, универсальный код ресурса (URI) или поток. Дополнительные сведения о настройке IconImageSource
свойства и изображений см. в Xamarin.Formsразделе "Изображения".Xamarin.Forms
Определение поведения кнопки
Класс ToolbarItem
наследует Clicked
событие из MenuItem
класса. Обработчик событий можно подключить к Clicked
событию, чтобы реагировать на касания или щелчки ToolbarItem
экземпляров в XAML:
<ToolbarItem ...
Clicked="OnItemClicked" />
Обработчик событий также может быть присоединен в коде:
ToolbarItem item = new ToolbarItem { ... }
item.Clicked += OnItemClicked;
В предыдущих примерах указан OnItemClicked
обработчик событий. В следующем коде показан пример реализации:
void OnItemClicked(object sender, EventArgs e)
{
ToolbarItem item = (ToolbarItem)sender;
messageLabel.Text = $"You clicked the \"{item.Text}\" toolbar item.";
}
ToolbarItem
объекты также могут использовать Command
свойства для CommandParameter
реагирования на входные данные пользователя без обработчиков событий. Дополнительные сведения об интерфейсе и привязке ICommand
данных MVVM см. в разделе Xamarin.Forms МенюItem MVVM Behavior.
Включение или отключение Панели инструментов в среде выполнения
Чтобы включить отключение ToolbarItem
во время выполнения, привязать его Command
свойство к ICommand
реализации и убедиться, что canExecute
делегат включает и отключает его ICommand
соответствующим образом.
Дополнительные сведения см. в разделе "Включить" или отключить MenuItem во время выполнения.
Основные и вторичные меню
Перечисление ToolbarItemOrder
содержит Default
Primary
и Secondary
значения.
Order
Если для свойства задано Primary
значение, ToolbarItem
объект появится на главной панели навигации на всех платформах. ToolbarItem
Объекты задаются приоритетом по заголовку страницы, который будет усечен, чтобы сделать место для элементов. На следующих снимках экрана показаны ToolbarItem
объекты в основном меню в iOS и Android:
Order
Если для свойства задано Secondary
значение, поведение зависит от платформ. В UWP и Android Secondary
меню элементов отображается как три точки, которые можно коснуться или щелкнуть, чтобы отобразить элементы в вертикальном списке. В iOS Secondary
меню элементов отображается под панелью навигации в виде горизонтального списка. На следующих снимках экрана показано дополнительное меню в iOS и Android:
Предупреждение
Поведение значков в ToolbarItem
объектах, для которых задано Secondary
их Order
свойство, является несогласованным на разных платформах. Избегайте настройки IconImageSource
свойства в элементах, которые отображаются в дополнительном меню.