xamarin 如何切换到光模式,尽管黑暗模式设置为手机

sqyvllje  于 12个月前  发布在  其他
关注(0)|答案(4)|浏览(112)

在我的应用程序中,我为控件定义了颜色。

{StaticResource Black}

字符串
有些是这样的,因为我在将值设置为disabled时更改颜色时遇到了一些问题

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


此外,当启动应用程序时,我以这种方式将模式设置为Light:

Current.UserAppTheme = AppTheme.Light;


但即便如此,如果手机有任何黑暗模式的设置,我的对话以这种方式触发

Application.Current.MainPage.DisplayAlert


有一个灰色的背景,而不是白色。还有一些情况下,例如,编辑器有一个黑色的背景,而不是白色的。
如何在使用我的应用程序时强制手机进入灯光模式?

nwlqm0z1

nwlqm0z11#

为了防止毛伊岛黑暗模式,你需要通过应用它本身来强制它。
在我看来,这是比在跨平台代码中应用黑客更好的解决方案,即使不处理黑暗模式本身就是一种黑客。
在onCreate方法中的原生android Activity中添加以下内容:

AppCompatDelegate.DefaultNightMode = AppCompatDelegate.ModeNightNo;

字符串
而对于iOS,您需要编辑Info.plist文件并添加以下内容:

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

wlzqhblo

wlzqhblo2#

如果你想让你的应用在明亮模式下,即使设备处于黑暗模式,你必须覆盖应用中的默认主题。
对于每个视图(codeBehind),在构造函数中添加这一行:

Application.Current.UserAppTheme = AppTheme.Light;

字符串
然后,转到Platforms find for Android文件夹,并将AppCompatDelegate.DefaultNightMode = AppCompatDelegate.ModeNightNo;添加到MainApplication类构造函数。

这两个步骤是强制性的,以获得所需的结果。

3vpjnl9f

3vpjnl9f3#

要在应用中强制使用灯光模式,只需在应用的构造函数中将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;
    }
}

字符串

wb1gzix0

wb1gzix04#

正如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
第一个月

相关问题