Xamarin.Forms Pasek narzędzi
Klasa Xamarin.FormsToolbarItem
jest specjalnym typem przycisku, który można dodać do Page
kolekcji obiektu ToolbarItems
. Każdy ToolbarItem
obiekt będzie wyświetlany jako przycisk na pasku nawigacyjnym aplikacji. Wystąpienie ToolbarItem
może mieć ikonę i pojawić się jako element menu podstawowego lub pomocniczego. Klasa ToolbarItem
dziedziczy z MenuItem
klasy .
Na poniższych zrzutach ekranu przedstawiono ToolbarItem
obiekty na pasku nawigacyjnym w systemach iOS i Android:
Klasa ToolbarItem
definiuje następujące właściwości:
Order
jest wartością wyliczeniowąToolbarItemOrder
, która określa, czyToolbarItem
wystąpienie jest wyświetlane w menu podstawowym, czy pomocniczym.Priority
jest wartością określającąinteger
kolejność wyświetlania elementów wPage
kolekcji obiektuToolbarItems
.
Klasa ToolbarItem
dziedziczy następujące zazwyczaj używane właściwości z MenuItem
klasy:
Command
to elementICommand
, który umożliwia tworzenie powiązań akcji użytkownika, takich jak naciśnięcia palca lub kliknięcia, do poleceń zdefiniowanych w modelu widoków.CommandParameter
jest parametremobject
, który określa parametr, który powinien zostać przekazany do .Command
IconImageSource
jest wartością określającąImageSource
ikonę wyświetlaniaToolbarItem
obiektu.Text
jest elementemstring
określającymToolbarItem
tekst wyświetlany w obiekcie.
Te właściwości są wspierane przez BindableProperty
obiekty, dzięki czemu wystąpienie może być obiektem ToolbarItem
docelowym powiązań danych.
Uwaga
Alternatywą dla tworzenia paska narzędzi z ToolbarItem
obiektów jest ustawienie dołączonej NavigationPage.TitleView
właściwości na klasę układu, która zawiera wiele widoków. Aby uzyskać więcej informacji, zobacz Wyświetlanie widoków na pasku nawigacyjnym.
Tworzenie elementu ToolbarItem
Obiekt ToolbarItem
można utworzyć w języku XAML. Właściwości Text
i IconImageSource
można ustawić, aby określić sposób wyświetlania przycisku na pasku nawigacyjnym. W poniższym przykładzie pokazano, jak utworzyć wystąpienie ToolbarItem
elementu z niektórymi typowymi zestawami właściwości i dodać go do ContentPage
ToolbarItems
kolekcji :
<ContentPage.ToolbarItems>
<ToolbarItem Text="Example Item"
IconImageSource="example_icon.png"
Order="Primary"
Priority="0" />
</ContentPage.ToolbarItems>
W tym przykładzie zostanie wyświetlony ToolbarItem
obiekt zawierający tekst, ikonę i pojawi się najpierw w podstawowym obszarze paska nawigacyjnego. Element ToolbarItem
można również utworzyć w kodzie i dodać do kolekcji 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);
Plik reprezentowany przez string
element , podany jako IconImageSource
właściwość, musi istnieć w każdym projekcie platformy.
Uwaga
Zasoby obrazów są obsługiwane inaczej na każdej platformie. Element ImageSource
może pochodzić ze źródeł, w tym pliku lokalnego lub zasobu osadzonego, identyfikatora URI lub strumienia. Aby uzyskać więcej informacji na temat ustawiania IconImageSource
właściwości i obrazów w programie Xamarin.Forms, zobacz Obrazy w programie Xamarin.Forms.
Definiowanie zachowania przycisku
Klasa ToolbarItem
dziedziczy Clicked
zdarzenie z MenuItem
klasy . Program obsługi zdarzeń można dołączyć do Clicked
zdarzenia, aby reagować na naciśnięcia lub klikania ToolbarItem
wystąpień w języku XAML:
<ToolbarItem ...
Clicked="OnItemClicked" />
Program obsługi zdarzeń można również dołączyć w kodzie:
ToolbarItem item = new ToolbarItem { ... }
item.Clicked += OnItemClicked;
Poprzednie przykłady odwołyły się do procedury obsługi zdarzeń OnItemClicked
. Poniższy kod przedstawia przykładową implementację:
void OnItemClicked(object sender, EventArgs e)
{
ToolbarItem item = (ToolbarItem)sender;
messageLabel.Text = $"You clicked the \"{item.Text}\" toolbar item.";
}
ToolbarItem
obiekty mogą również używać Command
właściwości i CommandParameter
do reagowania na dane wejściowe użytkownika bez procedur obsługi zdarzeń. Aby uzyskać więcej informacji na temat interfejsu ICommand
i powiązania danych MVVM, zobacz Xamarin.Forms Temat MenuItem MVVM Behavior (Zachowanie maszyny wirtualnej MVVM w menuItem MVVM).
Włączanie lub wyłączanie elementu ToolbarItem w czasie wykonywania
Aby włączyć wyłączenie obiektu w czasie wykonywania, powiąż ToolbarItem
jego Command
właściwość z implementacją ICommand
i upewnij się, że canExecute
delegat włącza i wyłącza ICommand
go odpowiednio.
Aby uzyskać więcej informacji, zobacz Włączanie lub wyłączanie elementu MenuItem w czasie wykonywania.
Menu podstawowe i pomocnicze
Wyliczenie ToolbarItemOrder
ma Default
wartości , Primary
i Secondary
.
Gdy właściwość jest ustawiona Order
na Primary
wartość , ToolbarItem
obiekt pojawi się na głównym pasku nawigacyjnym na wszystkich platformach. ToolbarItem
obiekty mają priorytet nad tytułem strony, co spowoduje obcięcie miejsca na elementy. Poniższe zrzuty ekranu pokazują ToolbarItem
obiekty w menu podstawowym w systemach iOS i Android:
Gdy właściwość jest ustawiona Order
na Secondary
wartość , zachowanie różni się w zależności od platform. W systemie UWP i Android Secondary
menu elementów jest wyświetlane jako trzy kropki, które można wykorzystać lub kliknąć, aby wyświetlić elementy na liście pionowej. W systemie iOS Secondary
menu elementów jest wyświetlane poniżej paska nawigacyjnego jako lista pozioma. Na poniższych zrzutach ekranu przedstawiono menu pomocnicze w systemach iOS i Android:
Ostrzeżenie
Zachowanie ikon w ToolbarItem
obiektach z ustawioną Secondary
właściwością Order
jest niespójne na różnych platformach. Unikaj ustawiania IconImageSource
właściwości elementów wyświetlanych w menu pomocniczym.