我想使用用户在系统设置中设置的强调色作为我的应用程序的主题。我的意思是 Windows 中的强调色 或 Android 中的调色板
我不确定是否有办法使用
Windows.UI.ViewManagement
和类似的东西(Copilot 女士建议的代码):
using Windows.UI.ViewManagement;
// Inside the Page Class:
var uiSettings = new UISettings();
var accentColor = uiSettings.GetColorValue(UIColorType.Accent);
您可以通过以下代码使用Windows/Android强调色:
private void Button_Clicked(object sender, EventArgs e)
{
#if WINDOWS
var uiSettings = new Windows.UI.ViewManagement.UISettings();
var color = uiSettings.GetColorValue(Windows.UI.ViewManagement.UIColorType.Accent);
var mauicolor = Color.Parse(color.ToString());
(sender as Button).BackgroundColor = mauicolor;
#elif ANDROID
var value = new Android.Util.TypedValue();
Android.App.Application.Context.ApplicationContext.Theme.ResolveAttribute(Android.Resource.Attribute.ColorAccent, value, true);
var contexwrapper = new AndroidX.AppCompat.View.ContextThemeWrapper(Android.App.Application.Context.ApplicationContext, Android.Resource.Style.ThemeDeviceDefault);
contexwrapper.Theme.ResolveAttribute(Android.Resource.Attribute.ColorAccent, value, true);
var color = value.Data;
var mauicolor = new Android.Graphics.Color(color).ToColor();
(sender as Button).BackgroundColor = mauicolor;
#endif
}