Xamarin Forms Shell 绑定弹出图标主题感知

Xamarin Forms Shell bind flyout icon theme aware

我有一个带有弹出窗口的 Xamarin Forms Shell 应用程序。我的条目定义如下:

<FlyoutItem Title="{x:Static resources:Strings.DashboardTitle}" FlyoutIcon="ic_dashboard_black">
    <Tab>
        <ShellContent>
            <dashboard:DashboardPage />
        </ShellContent>
    </Tab>
</FlyoutItem>

只要图标显示就可以了。但是为了支持浅色和深色主题,我希望能够将其与 AppThemeBinding 绑定。那可能吗?或者我将如何为弹出窗口中的图标设置主题?

在light/dark模式下可以使用AppThemeBinding markup extension定义图片来源:

<FlyoutItem Title="{x:Static resources:Strings.DashboardTitle}" FlyoutIcon="{AppThemeBinding Light=lightlogo.png, Dark=darklogo.png}">
    <Tab>
        <ShellContent>

        </ShellContent>
    </Tab>
</FlyoutItem>

Xamarin.Forms 必须满足以下要求才能响应系统主题更改:

  • Xamarin.Forms 4.6.0.967 或更高版本。
  • iOS 13 或更大。
  • Android 10(API 29)或更大。
  • UWP 内部版本 14393 或更高版本。

响应系统主题更改目前处于试验阶段,只能通过设置 AppTheme_Experimental 标志来使用。

参考:Enable flags in platform projects