Sdílet prostřednictvím


Xamarin.Forms ToolbarItem

Třída Xamarin.FormsToolbarItem je speciální typ tlačítka, které lze přidat do Page kolekce objektu ToolbarItems . Každý ToolbarItem objekt se zobrazí jako tlačítko v navigačním panelu aplikace. Instance ToolbarItem může mít ikonu a může se zobrazit jako primární nebo sekundární položka nabídky. Třída ToolbarItem dědí z MenuItem.

Následující snímky obrazovky zobrazují ToolbarItem objekty na navigačním panelu v iOSu a Androidu:

Třída ToolbarItem definuje následující vlastnosti:

  • Order je hodnota výčtu ToolbarItemOrder , která určuje, zda ToolbarItem se instance zobrazí v primární nebo sekundární nabídce.
  • Priorityinteger je hodnota, která určuje pořadí zobrazení položek v Page kolekci objektuToolbarItems.

Třída ToolbarItem dědí z třídy následující obvykle používané vlastnosti MenuItem :

  • Command je akce ICommand uživatele, jako jsou klepnutí prstem nebo kliknutí, k příkazům definovaným v modelu viewmodel.
  • CommandParameter je parametr object , který má být předán do objektu Command.
  • IconImageSourceImageSource je hodnota, která určuje ikonu zobrazení objektuToolbarItem.
  • Text je objekt, string který určuje zobrazovaný text ToolbarItem .

Tyto vlastnosti jsou podporovány BindableProperty objekty, takže ToolbarItem instance může být cílem datových vazeb.

Poznámka:

Alternativou k vytvoření panelu nástrojů z ToolbarItem objektů je nastavení NavigationPage.TitleView připojené vlastnosti ke třídě rozložení, která obsahuje více zobrazení. Další informace naleznete v tématu Zobrazení na navigačním panelu.

Vytvoření prvku ToolbarItem

Objekt ToolbarItem lze vytvořit instanci v xaml. Vlastnosti Text a IconImageSource vlastnosti lze nastavit tak, aby bylo možné určit, jak se tlačítko zobrazuje na navigačním panelu. Následující příklad ukazuje, jak vytvořit instanci s některými běžnými ToolbarItem sadami vlastností a přidat ho do ContentPageToolbarItems kolekce:

<ContentPage.ToolbarItems>
    <ToolbarItem Text="Example Item"
                 IconImageSource="example_icon.png"
                 Order="Primary"
                 Priority="0" />
</ContentPage.ToolbarItems>

Výsledkem tohoto příkladu ToolbarItem bude objekt, který obsahuje text, ikonu a zobrazí se jako první v primární oblasti navigačního panelu. Můžete ToolbarItem také vytvořit kód a přidat ho ToolbarItems do kolekce:

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);

Soubor reprezentovaný stringjako vlastnost , IconImageSource musí existovat v každém projektu platformy.

Poznámka:

Prostředky obrázků se na jednotlivých platformách zpracovávají odlišně. Zdroj ImageSource může pocházet ze zdrojů, včetně místního souboru nebo vloženého prostředku, identifikátoru URI nebo datového proudu. Další informace o nastavení IconImageSource vlastnosti a obrázků v Xamarin.Formsnaleznete v tématu Obrázky v Xamarin.Forms.

Definovat chování tlačítka

Třída ToolbarItem dědí Clicked událost z MenuItem třídy. Obslužná rutina události může být připojena k Clicked události, aby reagovala na klepnutí nebo kliknutí na ToolbarItem instance v XAML:

<ToolbarItem ...
             Clicked="OnItemClicked" />

Obslužnou rutinu události lze připojit také v kódu:

ToolbarItem item = new ToolbarItem { ... }
item.Clicked += OnItemClicked;

Předchozí příklady odkazovaly na obslužnou rutinu OnItemClicked události. Následující kód ukazuje ukázkovou implementaci:

void OnItemClicked(object sender, EventArgs e)
{
    ToolbarItem item = (ToolbarItem)sender;
    messageLabel.Text = $"You clicked the \"{item.Text}\" toolbar item.";
}

ToolbarItem objekty mohou také použít Command vlastnosti a CommandParameter reagovat na uživatelský vstup bez obslužných rutin událostí. Další informace o ICommand rozhraní a datové vazbě MVVM naleznete v tématu Xamarin.Forms MenuItem MVVM Chování.

Povolení nebo zakázání ToolbarItem za běhu

Chcete-li povolit zakázání ToolbarItem za běhu, vytvořte vazbu jeho Command vlastnosti na ICommand implementaci a ujistěte se, že canExecute delegát povolí a zakáže ICommand podle potřeby.

Další informace naleznete v tématu Povolení nebo zakázání MenuItem za běhu.

Primární a sekundární nabídky

Výčet ToolbarItemOrder obsahuje Default, Primarya Secondary hodnoty.

Pokud je vlastnost nastavena Order na Primary, ToolbarItem objekt se zobrazí na hlavním navigačním panelu na všech platformách. ToolbarItem Objekty jsou upřednostňovány před názvem stránky, které budou zkráceny, aby se uvolnilo místo pro položky. Následující snímky obrazovky zobrazují ToolbarItem objekty v primární nabídce v iOSu a Androidu:

Pokud je vlastnost nastavena Order na Secondary, chování se liší napříč platformami. V UPW a Androidu Secondary se nabídka položek zobrazí jako tři tečky, na které můžete klepnout nebo kliknout a zobrazit položky ve svislém seznamu. V iOSu Secondary se nabídka položek zobrazí pod navigačním panelem jako vodorovný seznam. Následující snímky obrazovky ukazují sekundární nabídku v iOSu a Androidu:

Upozorňující

Chování ikon v ToolbarItem objektech, které mají nastavenou Order vlastnost Secondary , je nekonzistentní na různých platformách. Vyhněte se nastavení IconImageSource vlastnosti u položek, které se zobrazí v sekundární nabídce.