Xamarin.Forms ToolbarItem
類別 Xamarin.FormsToolbarItem
是特殊類型的按鈕,可以新增至 Page
物件的 ToolbarItems
集合。 每個 ToolbarItem
物件會顯示為應用程式導覽列中的按鈕。 ToolbarItem
實例可以有圖示,並顯示為主要或次要功能表項。 類別 ToolbarItem
繼承自 MenuItem
。
下列螢幕快照顯示 ToolbarItem
iOS 和 Android 上導覽欄位中的物件:
類別 ToolbarItem
會定義下列屬性:
Order
是列舉ToolbarItemOrder
值,決定實例是否ToolbarItem
顯示在主要或次要功能表中。Priority
是值integer
,決定物件ToolbarItems
集合中Page
項目的顯示順序。
類別 ToolbarItem
會從 MenuItem
類別繼承下列常用的屬性:
Command
ICommand
是,允許將用戶動作,例如手指點選或按下,系結至 ViewModel 上定義的命令。CommandParameter
object
是 ,指定應該傳遞至 的參數Command
。IconImageSource
是值ImageSource
,可決定物件上的ToolbarItem
顯示圖示。Text
string
是決定 物件上顯示文字的ToolbarItem
。
這些屬性是由 BindableProperty
物件所支援,因此 ToolbarItem
實例可以是數據系結的目標。
注意
從 ToolbarItem
物件建立工具列的替代方法是將 NavigationPage.TitleView
附加屬性設定為包含多個檢視的版面配置類別。 如需詳細資訊,請參閱 在導覽列中顯示檢視。
建立 ToolbarItem
ToolbarItem
物件可以在 XAML 中具現化。 和 Text
IconImageSource
屬性可以設定為決定按鈕在導覽列中的顯示方式。 下列範例示範如何具現化 ToolbarItem
具有一些通用屬性集的,並將它新增至 ContentPage
的 ToolbarItems
集合:
<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 或數據流。 如需 在 中Xamarin.Forms設定 IconImageSource
屬性和 Images 的詳細資訊,請參閱 中的Xamarin.Forms影像。
定義按鈕行為
類別 ToolbarItem
會 Clicked
從 MenuItem
類別繼承 事件。 事件處理程式可以附加至 Clicked
事件,以回應 XAML 中的點選或按一下 ToolbarItem
實例:
<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
屬性來回應使用者輸入,而不需要事件處理程式。 如需介面和MVVM數據系結的詳細資訊 ICommand
,請參閱 Xamarin.Forms MenuItem MVVM 行為。
在運行時間啟用或停用 ToolbarItem
若要在執行時間開啟 停用 ToolbarItem
,請將其 Command
屬性系結至 ICommand
實作,並確定 canExecute
委派會適當地啟用和停用 ICommand
。
如需詳細資訊,請參閱 在運行時間啟用或停用 MenuItem。
主要和次要功能表
列舉 ToolbarItemOrder
具有 Default
、 Primary
和 Secondary
值。
Order
當屬性設定為 Primary
時,ToolbarItem
物件會出現在所有平臺上的主要導覽列中。 ToolbarItem
物件會優先於頁面標題,這會截斷以騰出空間供專案使用。 下列螢幕快照顯示 ToolbarItem
iOS 和 Android 上主要選單中的物件:
Order
當 屬性設定為 Secondary
時,行為會因平臺而異。 在UWP和Android上,專案 Secondary
功能表會顯示為三個點,可以點選或按兩下以顯示垂直清單中的專案。 在iOS上 Secondary
,專案功能表會顯示在導覽列下方作為水準清單。 下列螢幕快照顯示 iOS 和 Android 上的次要選單:
警告
物件中 ToolbarItem
,其 Order
屬性設定為 Secondary
的圖示行為在平台之間不一致。 避免在 IconImageSource
出現在次要功能表中的項目上設定 屬性。