如何检测 Windows 中的设备主题(亮/暗)?

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

我正在使用 Unity 开发 PC 游戏。我想让游戏的 UI 主题与设备的主题(深色/浅色)相同。有没有C#方法/变量查询播放器Windows的颜色主题(如果windows 10 =<)?

c# unity3d
1个回答
0
投票

您可以使用 Windows 注册表来检测用户 Windows 系统当前的颜色主题。下面是如何在 C# 中实现它的方法:

using Microsoft.Win32;

public static bool IsWindowsInDarkMode()
{
    const string keyName = @"HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Themes\Personalize";
    const string valueName = "AppsUseLightTheme";
    int lightTheme = 0;
    int darkTheme = 1;
    
    int registryValue = (int)Registry.GetValue(keyName, valueName, lightTheme);
    
    return registryValue == darkTheme;
}

如果值为0,则用户选择了深色主题。如果值为 1,则用户选择了浅色主题。

您可以调用此方法来检测用户Windows系统当前的颜色主题,然后使用该信息来设置游戏的UI主题。

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