如何拥有windows主题MAUI的颜色

how to have the color of the windows theme MAUI

我希望主按钮的颜色源自 windows 主题。例如,如果 windows 主题是红色的,我的按钮也是相同的颜色 谢谢

UISettings Class可以用来获取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事件,它用来检测系统主题的变化。

注意:以下事件仅在light/dark主题切换时触发。

示例代码

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
};