首页 > 解决方案 > Xamarin Forms Shell 绑定弹出图标主题感知

问题描述

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

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

只要显示图标,这就是有效的。但是为了支持明暗主题,我希望能够将它与 AppThemeBinding 绑定。那可能吗?或者我将如何为浮出控件中的图标设置主题?

标签: xamarin.formsxamarin.forms.shell

解决方案


您可以使用AppThemeBinding 标记扩展来定义明暗模式下的图像源:

<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标志来使用。

参考:在平台项目中启用标志


推荐阅读