如何在 .NET Maui 中使用 Windows/Android 强调色?

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

我想使用用户在系统设置中设置的强调色作为我的应用程序的主题。我的意思是 Windows 中的强调色Android 中的调色板

我不确定是否有办法使用

Windows.UI.ViewManagement
和类似的东西(Copilot 女士建议的代码):

using Windows.UI.ViewManagement;
// Inside the Page Class:
var uiSettings = new UISettings();
var accentColor = uiSettings.GetColorValue(UIColorType.Accent);
c# xaml xamarin maui .net-8.0
1个回答
0
投票

您可以通过以下代码使用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
        }
© www.soinside.com 2019 - 2024. All rights reserved.