Xamarin.Forms Панель инструментов

Download Sample Скачайте пример

Класс Xamarin.FormsToolbarItem — это специальный тип кнопки, которую можно добавить в Page коллекцию объекта ToolbarItems . Каждый ToolbarItem объект будет отображаться как кнопка на панели навигации приложения. Экземпляр ToolbarItem может иметь значок и отображаться как основной или дополнительный пункт меню. Класс ToolbarItem наследует от MenuItem.

На следующих снимках экрана показаны ToolbarItem объекты на панели навигации в iOS и Android:

Класс ToolbarItem определяет следующие свойства:

  • OrderToolbarItemOrder— это значение перечисления, определяющее, отображается ли 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 некоторыми общими наборами свойств и добавить его в ContentPageToolbarItems коллекцию:

<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 содержит DefaultPrimaryи Secondary значения.

Order Если для свойства задано Primaryзначение, ToolbarItem объект появится на главной панели навигации на всех платформах. ToolbarItem Объекты задаются приоритетом по заголовку страницы, который будет усечен, чтобы сделать место для элементов. На следующих снимках экрана показаны ToolbarItem объекты в основном меню в iOS и Android:

Order Если для свойства задано Secondaryзначение, поведение зависит от платформ. В UWP и Android Secondary меню элементов отображается как три точки, которые можно коснуться или щелкнуть, чтобы отобразить элементы в вертикальном списке. В iOS Secondary меню элементов отображается под панелью навигации в виде горизонтального списка. На следующих снимках экрана показано дополнительное меню в iOS и Android:

Предупреждение

Поведение значков в ToolbarItem объектах, для которых задано Secondary их Order свойство, является несогласованным на разных платформах. Избегайте настройки IconImageSource свойства в элементах, которые отображаются в дополнительном меню.