Я хочу использовать цвет Accent, установленный пользователем в настройках системы, в качестве основной темы моего приложения. Я имею в виду Цвет акцента в Windows или Цветовая палитра в Android
Я не уверен, есть ли способ использовать Windows.UI.ViewManagement
и что-то вроде этого (код, предложенный ms 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
}
Примечание. Я протестировал его в Windows и работал, но не нашел места, где можно было бы установить системный акцент на моем устройстве Android и симуляторе. Итак, я имею в виду этот случай: Получите цвет акцента системы Android (цветовой акцент системы Android 10) и преобразуйте код Java в C#.
Вы скопировали код #if Windows
? Вы можете просто скопировать полный код и запустить его, игнорируя ошибку. @SepehrHekmatRad
Пространство имен содержится в SDK платформы по умолчанию. А Условная компиляция устранит ошибку. @SepehrHekmatRad
Привет. Спасибо за Ваш ответ. Как я могу использовать
Windows.UI...
иAndroid.Util...
? Когда я добавляю его в свой проект, я получаю сообщение об ошибке «Не удалось найти тип или пространство имен Windows». В nuget такого пакета тоже нет. В каком пространстве имен они расположены?