как сделать цвет темы windows MAUI
Я хочу, чтобы основная кнопка имела цвет, полученный из темы Windows. например, если тема Windows красная, мои кнопки такого же цвета. Спасибо.
1 ответ
Класс UISettings можно использовать для получения текущего системного цвета на платформе Windows, суть в том, как преобразовать
Windows.UI.Color
к
Microsoft.Maui.Graphics.Color
.
Образец кода
#if WINDOWS
var uiSettings = new Windows.UI.ViewManagement.UISettings();
var color = uiSettings.GetColorValue(UIColorType.Accent);
//change button color with system theme color
button.BackgroundColor = Microsoft.Maui.Graphics.Color.Parse(color.ToString());
#endif
И если вы хотите динамически менять цвет в соответствии с системной темой, взгляните на событие Application.Current.RequestedThemeChanged , которое используется для обнаружения изменения системной темы.
Примечание . Следующее событие запускается только при переключении между светлой/темной темой.
Образец кода
Application.Current.RequestedThemeChanged += (s, a) =>
{
#if WINDOWS
var uiSettings = new Windows.UI.ViewManagement.UISettings();
var color = uiSettings.GetColorValue(UIColorType.Accent);
//change button color with system theme color
button.BackgroundColor = Microsoft.Maui.Graphics.Color.Parse(color.ToString());
#endif
};