Xamarin.Forms ToolbarItem
Die Xamarin.FormsToolbarItem
-Klasse ist ein spezieller Schaltflächentyp, der der Auflistung eines Page
Objekts ToolbarItems
hinzugefügt werden kann. Jedes ToolbarItem
Objekt wird als Schaltfläche in der Navigationsleiste der Anwendung angezeigt. Ein ToolbarItem
instance kann über ein Symbol verfügen und als primäres oder sekundäres Menüelement angezeigt werden. Die Klasse ToolbarItem
erbt von MenuItem
.
Die folgenden Screenshots zeigen ToolbarItem
Objekte in der Navigationsleiste unter iOS und Android:
Die ToolbarItem
-Klasse definiert die folgenden Eigenschaften:
Order
ist einToolbarItemOrder
Enumerationswert, der bestimmt, ob dieToolbarItem
instance im primären oder sekundären Menü angezeigt wird.Priority
ist eininteger
Wert, der die Anzeigereihenfolge von Elementen in der Auflistung einesPage
ObjektsToolbarItems
bestimmt.
Die ToolbarItem
-Klasse erbt die folgenden typischerweise verwendeten Eigenschaften von der MenuItem
-Klasse:
Command
ist eineICommand
, die das Binden von Benutzeraktionen, z. B. Fingerkippen oder Klicks, an Befehle ermöglicht, die für ein Viewmodel definiert sind.CommandParameter
ist einobject
, der den Parameter angibt, derCommand
an übergeben werden soll.IconImageSource
ist einImageSource
Wert, der das Anzeigesymbol für einToolbarItem
Objekt bestimmt.Text
ist einestring
, die den Anzeigetext für einToolbarItem
Objekt bestimmt.
Diese Eigenschaften werden durch BindableProperty
Objekte unterstützt, sodass ein ToolbarItem
instance das Ziel von Datenbindungen sein kann.
Hinweis
Eine Alternative zum Erstellen einer Symbolleiste aus ToolbarItem
Objekten besteht darin, die NavigationPage.TitleView
angefügte Eigenschaft auf eine Layoutklasse festzulegen, die mehrere Ansichten enthält. Weitere Informationen finden Sie unter Anzeigen von Ansichten in der Navigationsleiste.
Erstellen eines ToolbarItem-Objekts
Ein ToolbarItem
Objekt kann in XAML instanziiert werden. Die Text
Eigenschaften und IconImageSource
können festgelegt werden, um zu bestimmen, wie die Schaltfläche in der Navigationsleiste angezeigt wird. Das folgende Beispiel zeigt, wie sie eine ToolbarItem
instanziieren, wobei einige allgemeine Eigenschaften festgelegt sind, und sie einer ContentPage
ToolbarItems
Auflistung hinzugefügt werden:
<ContentPage.ToolbarItems>
<ToolbarItem Text="Example Item"
IconImageSource="example_icon.png"
Order="Primary"
Priority="0" />
</ContentPage.ToolbarItems>
In diesem Beispiel wird ein ToolbarItem
Objekt mit Text und einem Symbol angezeigt, das zuerst im primären Navigationsleistenbereich angezeigt wird. Ein ToolbarItem
kann auch im Code erstellt und der ToolbarItems
Auflistung hinzugefügt werden:
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);
Die von string
als -Eigenschaft angegebene IconImageSource
Datei muss in jedem Plattformprojekt vorhanden sein.
Hinweis
Imageressourcen werden auf jeder Plattform unterschiedlich behandelt. Ein ImageSource
kann aus Quellen stammen, einschließlich einer lokalen Datei oder eingebetteten Ressource, einem URI oder einem Stream. Weitere Informationen zum Festlegen der IconImageSource
Eigenschaft und Images in Xamarin.Formsfinden Sie unter Images in Xamarin.Forms.
Definieren des Schaltflächenverhaltens
Die ToolbarItem
-Klasse erbt das Clicked
Ereignis von der MenuItem
-Klasse. Ein Ereignishandler kann an das Clicked
Ereignis angefügt werden, um auf Tippen oder Klicken auf ToolbarItem
Instanzen in XAML zu reagieren:
<ToolbarItem ...
Clicked="OnItemClicked" />
Ein Ereignishandler kann auch im Code angefügt werden:
ToolbarItem item = new ToolbarItem { ... }
item.Clicked += OnItemClicked;
In früheren Beispielen wurde auf einen OnItemClicked
Ereignishandler verwiesen. Der folgende Code zeigt eine Beispielimplementierung:
void OnItemClicked(object sender, EventArgs e)
{
ToolbarItem item = (ToolbarItem)sender;
messageLabel.Text = $"You clicked the \"{item.Text}\" toolbar item.";
}
ToolbarItem
-Objekte können auch die Command
Eigenschaften und CommandParameter
verwenden, um auf Benutzereingaben ohne Ereignishandler zu reagieren. Weitere Informationen zur ICommand
Schnittstelle und zur MVVM-Datenbindung finden Sie unter Xamarin.Forms MenuItem MVVM-Verhalten.
Aktivieren oder Deaktivieren eines ToolbarItem zur Laufzeit
Um die Deaktivierung zur ToolbarItem
Laufzeit zu aktivieren, binden Sie dessen Command
Eigenschaft an eine ICommand
Implementierung, und stellen Sie sicher, dass ein canExecute
Delegat die ICommand
option entsprechend aktiviert und deaktiviert.
Weitere Informationen finden Sie unter Aktivieren oder Deaktivieren eines MenuItem zur Laufzeit.
Primäre und sekundäre Menüs
Die ToolbarItemOrder
Enumeration weist Default
Werte , Primary
und Secondary
auf.
Wenn die Order
Eigenschaft auf Primary
festgelegt ist, wird das ToolbarItem
Objekt auf allen Plattformen in der Standard Navigationsleiste angezeigt. ToolbarItem
-Objekte werden über den Seitentitel priorisiert, der abgeschnitten wird, um Platz für die Elemente zu schaffen. Die folgenden Screenshots zeigen ToolbarItem
Objekte im primären Menü unter iOS und Android:
Wenn die Order
-Eigenschaft auf Secondary
festgelegt ist, variiert das Verhalten plattformübergreifend. Unter UWP und Android wird das Secondary
Elementmenü als drei Punkte angezeigt, die getippt oder geklickt werden können, um Elemente in einer vertikalen Liste anzuzeigen. Unter iOS wird das Secondary
Menü "Elemente" unter der Navigationsleiste als horizontale Liste angezeigt. Die folgenden Screenshots zeigen ein sekundäres Menü unter iOS und Android:
Warnung
Das Symbolverhalten in ToolbarItem
Objekten, deren Order
Eigenschaft auf Secondary
festgelegt ist, ist plattformübergreifend inkonsistent. Vermeiden Sie das Festlegen der IconImageSource
Eigenschaft für Elemente, die im sekundären Menü angezeigt werden.