尽管手机设置了深色模式,如何切换到浅色模式

问题描述 投票:0回答:4

在我的应用程序中,我为控件定义了颜色。大多是这样的

{StaticResource Black}

有些像这样,因为当我将值设置为禁用时,我在更改颜色时遇到了一些问题

{AppThemeBinding Light={StaticResource Gray200}, Dark={StaticResource Gray200}}

另外,启动应用程序时,我是这样将模式设置为Light的:

Current.UserAppTheme = AppTheme.Light;

但即便如此,如果手机有深色模式的设置,我的对话就会这样触发

Application.Current.MainPage.DisplayAlert

有灰色背景而不是白色。在某些情况下,例如,编辑器的背景是黑色而不是白色。

使用应用程序时如何强制手机进入灯光模式?

c# xamarin maui
4个回答
4
投票

要阻止毛伊岛的黑暗模式,您需要通过本机应用来强制它。

在我看来,这是比在跨平台代码中应用黑客更好的解决方案,即使不处理黑暗模式本身就是一种黑客。

在您的原生 Android Activity 的 onCreate 方法中添加以下内容:

AppCompatDelegate.DefaultNightMode = AppCompatDelegate.ModeNightNo;

对于 iOS,您需要编辑

Info.plist
文件并添加以下内容:

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

2
投票

如果您希望应用程序处于浅色模式,即使设备处于深色模式,您也必须覆盖应用程序中的默认主题。

对于每个视图(codeBehind),在构造函数中添加此行:

Application.Current.UserAppTheme = AppTheme.Light;

然后,转到 Platforms 查找 Android 文件夹并添加

AppCompatDelegate.DefaultNightMode = AppCompatDelegate.ModeNightNo;
到 MainApplication 类构造函数。

这两个步骤是获得所需结果所必需的。


0
投票

要在应用程序中强制启用灯光模式,只需在应用程序的构造函数中将

UserAppTheme
设置为
AppTheme.Light

.../App.xaml.cs

namespace MyProject 
{
    public partial class App 
    {
        UserAppTheme = AppTheme.Light;

        // or, fully qualified: 
        Application.UserAppTheme = Microsoft.Maui.ApplicationModel.AppTheme.Light;
    }
}

0
投票

正如 Josh Brunton 所指出的,您可以在 App 类中全局设置它。 (我会投票,但我还没有足够的代表)微软自己的文档推荐它,如下所示:https://learn.microsoft.com/en-us/dotnet/maui/user-interface/system-theme -changes?view=net-maui-8.0#set-the-current-user-theme

Application.Current.UserAppTheme = AppTheme.Dark;

© www.soinside.com 2019 - 2024. All rights reserved.