Темный режим становится все более популярным среди пользователей, обеспечивая элегантный и визуально привлекательный внешний вид приложений и операционных систем. Windows, будучи одной из наиболее широко используемых операционных систем, предлагает темный режим в качестве общесистемной функции. В этой статье блога мы рассмотрим различные методы обнаружения темного режима системы в Windows на примерах кода. Являетесь ли вы разработчиком, желающим реализовать поддержку Dark Mode в своем приложении, или просто интересуетесь техническими аспектами, это руководство предоставит вам необходимые знания.
Метод 1: настройки реестра
Windows хранит различные параметры конфигурации в реестре Windows, включая настройки темного режима. Вы можете получить доступ к этим настройкам программно, чтобы определить, включен ли темный режим. Вот фрагмент кода на C#:
using Microsoft.Win32;
public static bool IsDarkModeEnabled()
{
RegistryKey registryKey = Registry.CurrentUser.OpenSubKey("Software\\Microsoft\\Windows\\CurrentVersion\\Themes\\Personalize");
int value = (int)registryKey.GetValue("AppsUseLightTheme");
return value == 0;
}
Метод 2: функция SystemParametersInfo
Другой подход предполагает использование функции SystemParametersInfoиз Windows API, которая позволяет получать общесистемные настройки. Вот пример на C++:
#include <Windows.h>
bool IsDarkModeEnabled()
{
BOOL isDarkMode = FALSE;
SystemParametersInfo(SPI_GETDARKMODE, 0, &isDarkMode, 0);
return isDarkMode;
}
Метод 3: UWP API
Если вы разрабатываете приложение универсальной платформы Windows (UWP), вы можете использовать класс UISettingsдля определения цветового режима системы. Вот пример на C#:
using Windows.UI.ViewManagement;
public static bool IsDarkModeEnabled()
{
UISettings uiSettings = new UISettings();
return uiSettings.GetColorValue(UIColorType.Background) == Colors.Black;
}
Метод 4. Библиотека пользовательского интерфейса Windows (WinUI)
Для разработчиков, использующих библиотеку пользовательского интерфейса Windows (WinUI), существует удобный класс ThemeListener, который упрощает обнаружение темного режима. Вот пример на C#:
using Microsoft.UI.Xaml;
public static bool IsDarkModeEnabled()
{
return ThemeListener.RequestedTheme == ApplicationTheme.Dark;
}
В этой статье мы рассмотрели различные методы обнаружения темного режима в операционной системе Windows. Независимо от того, предпочитаете ли вы получать доступ к настройкам реестра, использовать функции Windows API, использовать UWP API или использовать WinUI, теперь у вас есть ряд возможностей для программного обнаружения темного режима. Внедрив обнаружение темного режима в своих приложениях, вы можете улучшить взаимодействие с пользователем и обеспечить визуально целостный интерфейс. Будьте в курсе последних тенденций и включите поддержку темного режима, чтобы ваши приложения оставались на шаг впереди.