如何在 Xamarin.Forms 中强制使用灯光模式?

Mah*_*san 3 c# xaml xamarin xamarin.forms miui

我的应用程序的 UI 设计为在浅色模式下使用。但是如果手机的默认主题是暗模式,我的应用程序也会切换到暗模式并且 UI 看起来很垃圾。所以我想强制我的应用程序使用光照模式。我怎样才能做到这一点?

在我使用的app.xaml文件中UserAppTheme="Light",将内容页面的背景颜色设置为变体白色(例如#FFF, #F2F3F4),但仍然不起作用。我什至尝试<style name="MainTheme.Base" parent="Theme.AppCompat.Light.DarkActionBar">styles.xml. 但是如果手机处于黑暗模式,所有的白色区域也会变暗。

我在 MIUI 12 中测试过。

Vis*_*arp 9

iOS 更新您的info.plist

<key>UIUserInterfaceStyle</key>
<string>Light</string>
Run Code Online (Sandbox Code Playgroud)

Android 将样式更改MainTheme.BaseDayNight

<style name="MainTheme.Base" parent="Theme.AppCompat.DayNight.DarkActionBar">
Run Code Online (Sandbox Code Playgroud)

James Montemagno 博客的原始答案和更多细节


小智 7

在 Android 上试试这个

在Andriod项目中:

  1. styles.xml文件中的<style>元素中添加:
    <item name="android:forceDarkAllowed">false</item>
<style name="MainTheme" parent="MainTheme.Base">
  <item name="android:forceDarkAllowed">false</item>
</style>
Run Code Online (Sandbox Code Playgroud)
  1. MainActivity.cs方法中OnCreate添加:
    AppCompatDelegate.DefaultNightMode = AppCompatDelegate.ModeNightNo
protected override void OnCreate(Bundle savedInstanceState)
{
    AppCompatDelegate.DefaultNightMode = AppCompatDelegate.ModeNightNo;
    base.OnCreate(savedInstanceState);
}
Run Code Online (Sandbox Code Playgroud)