Xamarin.Forms Pasek narzędzi

Download Sample Pobieranie przykładu

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

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, czy ToolbarItem wystąpienie jest wyświetlane w menu podstawowym, czy pomocniczym.
  • Priority jest wartością określającą integer kolejność wyświetlania elementów w Page kolekcji obiektu ToolbarItems .

Klasa ToolbarItem dziedziczy następujące zazwyczaj używane właściwości z MenuItem klasy:

  • Command to element ICommand , 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.
  • CommandParameterjest parametremobject, który określa parametr, który powinien zostać przekazany do .Command
  • IconImageSource jest wartością określającą ImageSource ikonę wyświetlania ToolbarItem obiektu.
  • Text jest elementem string określającym ToolbarItem 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 ContentPageToolbarItems 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 stringelement , 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 Defaultwartości , Primaryi Secondary .

Gdy właściwość jest ustawiona Order na Primarywartość , 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 Secondarywartość , 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.