Ícones de TabbedPage no Windows

Baixar exemplo Baixar o exemplo

Esse Plataforma Universal do Windows específico da plataforma permite que os ícones de página sejam exibidos em uma TabbedPage barra de ferramentas e fornece a capacidade de especificar opcionalmente o tamanho do ícone. Ele é consumido em XAML definindo a TabbedPage.HeaderIconsEnabled propriedade trueanexada como e, opcionalmente, definindo a TabbedPage.HeaderIconsSize propriedade anexada como um Size valor:

<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, ele pode ser consumido do C# usando a API fluente:

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

O TabbedPage.On<Windows> método especifica que essa plataforma específica só será executada no Plataforma Universal do Windows. O TabbedPage.SetHeaderIconsEnabled método, no Xamarin.Forms.PlatformConfiguration.WindowsSpecific namespace, é usado para ativar ou desativar ícones de cabeçalho. Opcionalmente TabbedPage.SetHeaderIconsSize , o método especifica o tamanho do ícone de cabeçalho com um Size valor.

Além disso, a TabbedPage classe no Xamarin.Forms.PlatformConfiguration.WindowsSpecific namespace também tem um EnableHeaderIcons método que permite ícones de cabeçalho, um DisableHeaderIcons método que desabilita ícones de cabeçalho e um IsHeaderIconsEnabled método que retorna um boolean valor que indica se os ícones de cabeçalho estão habilitados.

O resultado é que os ícones de página podem ser exibidos em uma TabbedPage barra de ferramentas, com o tamanho do ícone sendo opcionalmente definido como um tamanho desejado:

Ícones tabbedPage habilitados ícones