Windows 上的 TabbedPage 图标

这个特定于通用 Windows 平台的功能支持在 TabbedPage 工具栏上显示页面图标,并提供根据需要指定图标大小的功能。 在 XAML 中,可通过将 TabbedPage.HeaderIconsEnabled 附加属性设置为 true,并选择性地将 TabbedPage.HeaderIconsSize 附加属性添加到 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>

或者,可以使用 Fluent API 从 C# 使用它:

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

TabbedPage.On<Windows> 方法指定此平台特定功能仅在通用 Windows 平台上运行。 Xamarin.Forms.PlatformConfiguration.WindowsSpecific 命名空间中的 TabbedPage.SetHeaderIconsEnabled 方法用于打开或关闭标题图标。 TabbedPage.SetHeaderIconsSize 方法选择性地使用 Size 值指定标题图标大小。

此外,Xamarin.Forms.PlatformConfiguration.WindowsSpecific 命名空间中的 TabbedPage 类还提供 EnableHeaderIcons 方法来启用标题图标,提供 DisableHeaderIcons 方法来禁用标题图标,并提供 IsHeaderIconsEnabled 来返回一个 boolean 值,指示是否启用标题图标。

这样,页面图标可以在 TabbedPage 工具栏上显示,图标大小根据需要设置为所需大小:

特定于平台启用的 TabbedPage 图标