Xamarin.Forms ToolbarItem

Ejemplo de descarga Descarga del ejemplo

La Xamarin.FormsToolbarItem clase es un tipo especial de botón que se puede agregar a la Page colección de un ToolbarItems objeto. Cada ToolbarItem objeto aparecerá como un botón en la barra de navegación de la aplicación. Una ToolbarItem instancia puede tener un icono y aparecer como un elemento de menú principal o secundario. La clase ToolbarItem se hereda de MenuItem.

En las capturas de pantalla siguientes ToolbarItem se muestran objetos en la barra de navegación de iOS y Android:

Captura de pantalla de demostración (Captura de pantalla de demostración de ToolbarItem en Android e iOS)

La clase ToolbarItem define las propiedades siguientes:

La ToolbarItem clase hereda las siguientes propiedades usadas normalmente de la MenuItem clase :

Estas propiedades están copiadas por BindableProperty objetos , por lo que una instancia puede ser el destino de los enlaces de ToolbarItem datos.

Nota:

Una alternativa a la creación de una barra de herramientas a partir de objetos es establecer la propiedad ToolbarItem adjunta en una clase de diseño que contiene varias NavigationPage.TitleView vistas. Para obtener más información, vea Mostrar vistas en la barra de navegación.

Crear un elemento ToolbarItem

Se ToolbarItem pueden crear instancias de un objeto en XAML. Las Text propiedades y se pueden establecer para determinar cómo se muestra el botón en la barra de IconImageSource navegación. En el ejemplo siguiente se muestra cómo crear una instancia de con algunas propiedades comunes ToolbarItem establecidas y agregarla a una ContentPage colección de ToolbarItems :

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

Este ejemplo dará como resultado un objeto que tiene texto, un icono y ToolbarItem aparece primero en el área de la barra de navegación principal. También ToolbarItem se puede crear un en el código y agregarlo a la ToolbarItems colección:

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

El archivo representado por string , proporcionado como la propiedad , debe existir en cada proyecto de IconImageSource plataforma.

Nota:

Los recursos de imagen se controlan de forma diferente en cada plataforma. Puede ImageSource proceder de orígenes como un archivo local o un recurso incrustado, un URI o una secuencia. Para obtener más información sobre cómo establecer IconImageSource la propiedad e Imágenes en , vea Xamarin.FormsImages in Xamarin.Forms .

Definición del comportamiento del botón

La ToolbarItem clase hereda el Clicked evento de la clase MenuItem . Se puede adjuntar un controlador de eventos al evento para reaccionar a pulsaciones o clics en ClickedToolbarItem instancias de XAML:

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

También se puede adjuntar un controlador de eventos en el código:

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

En los ejemplos anteriores se hace referencia a OnItemClicked un controlador de eventos. El código siguiente muestra una implementación de ejemplo:

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

ToolbarItem Los objetos también pueden usar las Command propiedades y para reaccionar a la entrada del usuario sin controladores de CommandParameter eventos. Para obtener más información sobre la interfaz y el enlace ICommand de datos MVVM, vea Xamarin.Forms MenuItem MVVM Behavior .

Habilitación o deshabilitación de un elemento ToolbarItem en tiempo de ejecución

Para habilitar la deshabilitación de en tiempo de ejecución, enlace su propiedad a una implementación y asegúrese de que un delegado habilita y ToolbarItemCommand deshabilita según ICommandcanExecuteICommand corresponda.

Para obtener más información, vea Habilitar o deshabilitar un elemento MenuItem en tiempo de ejecución.

Menús principal y secundario

La ToolbarItemOrder enumeración tiene Default los valores , Primary y Secondary .

Cuando la Order propiedad se establece en , el objeto aparecerá en la barra de navegación principal en todas las PrimaryToolbarItem plataformas. ToolbarItem Los objetos tienen prioridad sobre el título de la página, que se truncará para dar espacio a los elementos. En las capturas de pantalla siguientes ToolbarItem se muestran objetos en el menú principal de iOS y Android:

Captura de pantalla del menú principal

Cuando la Order propiedad se establece en , el comportamiento varía entre Secondary plataformas. En UWP y Android, el menú de elementos aparece como tres puntos que se pueden pulsar o hacer clic para mostrar los elementos Secondary de una lista vertical. En iOS, el Secondary menú de elementos aparece debajo de la barra de navegación como una lista horizontal. En las capturas de pantalla siguientes se muestra un menú secundario en iOS y Android:

Captura de pantalla del menú secundario ToolbarItem secondary menu screenshot on Android and iOS (Captura de pantalla del menú secundario "ToolbarItem secondary menu screenshot Android and iOS" de pantalla del menú secundario de ToolbarItem en Android e i

Advertencia

El comportamiento de los ToolbarItem iconos en objetos que tienen su propiedad establecida en es OrderSecondary incoherente entre plataformas. Evite establecer la IconImageSource propiedad en los elementos que aparecen en el menú secundario.