【问题标题】:Enforcing theme for a particular Xamarin application为特定 Xamarin 应用程序强制执行主题
【发布时间】:2021-05-01 19:21:32
【问题描述】:

在我的 Xamarin 项目 (Xamarin 4.8) 中有许多结构复杂的页面。还有很多位图资源,专为白色背景等设计。

当用户在 iOS 上设置深色主题时,页面外观会变得怪异且无法使用。在 Android 上,应用看起来没有任何变化。

现在我没有时间在每个页面上的每个控件上手动设置颜色属性,我想为应用程序(Android 和 iOS 平台)强制执行浅色主题,以便以后有时间重新设计整个应用程序。

In an article 我读到 Xamarin 5 提供了一种方法,将这行代码放入 Application 类中:

App.Current.UserAppTheme = OSAppTheme.Light;

我尝试过这种方式(将项目迁移到 Xamarin 5 并调用此代码),但它不起作用。黑暗主题中的 iOS 上的应用程序看起来无法使用。

在这一点上我有什么选择?有没有一种相对简单的方法来为 iOS 应用程序强制实施 Light 主题?

【问题讨论】:

  • 在您的info.plist 添加一个UIUserInterfaceStyle 条目并将其设置为Light
  • 看看this thread中的解决方案。
  • @JackHua-MSFT 谢谢。它奏效了。
  • 别忘了稍后标记答案,这将帮助更多有同样问题的人:)。
  • 是的,稍后标记!

标签: xamarin xamarin.forms xamarin.ios


【解决方案1】:

根据@SushiHangover 和@JackHua-MSFT 对this answer 的建议,我使用了以下方法并且它有效(XCode 12.3):

plist.info 中,我应该添加键UIUserInterfaceStyle 和值Light。这会为应用程序强制执行Light 主题,而不管为设备设置了什么主题。

我添加到plist.info 的最终 xml 代码如下所示:

<key>UIUserInterfaceStyle</key>
<string>Light</string>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-01-04
    • 2013-11-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-30
    • 2011-05-07
    相关资源
    最近更新 更多