xamarin.forms - 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 绑定。那可能吗?或者我将如何为浮出控件中的图标设置主题?
解决方案
您可以使用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
标志来使用。
参考:在平台项目中启用标志
推荐阅读
- java - Android 切换按钮单击设置文本视图
- kotlin - Kotlin 可空任意
- java - 在 6.0 以上的 Android 版本中无法通过广播接收器获得通知
- python - Keras - 检查目标时出错:预期的 dense_2 有 2 个维度,但得到了形状为 (256, 1, 5) 的数组
- hibernate - Hibernate 和 Oracle 12c:未知的 Oracle 主要版本 [12]:无法确定要使用的方言 [name=Oracle,majorVersion=12]
- bash - 自变量以来经过的时间
- javascript - 从 javascript 对象中导出所有对象
- npm - 我运行 npm install 命令,但它显示已弃用,我该如何解决?
- c# - 在 HTML 表中显示 JSON 数据
- javascript - JS 文档,文档中的 [ 和 ]] 是什么意思?