Compartir vía


Iconos de TabbedPage en Windows

Esta característica específica de la Plataforma universal de Windows permite mostrar iconos de página en una barra de herramientas TabbedPage y proporciona la posibilidad de especificar opcionalmente el tamaño del icono. Se consume en XAML estableciendo la propiedad adjunta TabbedPage.HeaderIconsEnabled en true y estableciendo opcionalmente la propiedad adjunta TabbedPage.HeaderIconsSize en un valor Size:

<TabbedPage ...
            xmlns:windows="clr-namespace:Xamarin.Forms.PlatformConfiguration.WindowsSpecific;assembly=Xamarin.Forms.Core"
            windows:TabbedPage.HeaderIconsEnabled="true">
    <windows:TabbedPage.HeaderIconsSize>
        <Size>
            <x:Arguments>
                <x:Double>24</x:Double>
                <x:Double>24</x:Double>
            </x:Arguments>
        </Size>
    </windows:TabbedPage.HeaderIconsSize>
    <ContentPage Title="Todo" IconImageSource="todo.png">
        ...
    </ContentPage>
    <ContentPage Title="Reminders" IconImageSource="reminders.png">
        ...
    </ContentPage>
    <ContentPage Title="Contacts" IconImageSource="contacts.png">
        ...
    </ContentPage>
</TabbedPage>

Como alternativa, se puede consumir desde C# mediante la API fluida:

using Xamarin.Forms.PlatformConfiguration;
using Xamarin.Forms.PlatformConfiguration.WindowsSpecific;
...

public class WindowsTabbedPageIconsCS : Xamarin.Forms.TabbedPage
{
  public WindowsTabbedPageIconsCS()
  {
    On<Windows>().SetHeaderIconsEnabled(true);
    On<Windows>().SetHeaderIconsSize(new Size(24, 24));

    Children.Add(new ContentPage { Title = "Todo", IconImageSource = "todo.png" });
    Children.Add(new ContentPage { Title = "Reminders", IconImageSource = "reminders.png" });
    Children.Add(new ContentPage { Title = "Contacts", IconImageSource = "contacts.png" });
  }
}

El método TabbedPage.On<Windows> especifica que esta característica específica de la plataforma solo se ejecutará en la Plataforma universal de Windows. El método TabbedPage.SetHeaderIconsEnabled, del espacio de nombres Xamarin.Forms.PlatformConfiguration.WindowsSpecific, se usa para activar o desactivar los iconos de encabezado. Opcionalmente, el método TabbedPage.SetHeaderIconsSize especifica el tamaño del icono de encabezado con un valor Size.

Además, la clase TabbedPage del espacio de nombres Xamarin.Forms.PlatformConfiguration.WindowsSpecific también tiene un método EnableHeaderIcons que habilita los iconos de encabezado, un método DisableHeaderIcons que deshabilita los iconos de encabezado y un método IsHeaderIconsEnabled que devuelve un valor boolean que indica si los iconos de encabezado están habilitados.

El resultado es que los iconos de página se pueden mostrar en una barra de herramientas TabbedPage, y el tamaño del icono que se establece opcionalmente en un tamaño deseado:

Iconos TabbedPage habilitados específicos de la plataforma