Диспетчер тем Windows Phone

возможно ли, например, написать фоновую службу, которая случайным образом меняет тему Windows Phone, я имею в виду, можно ли получить доступ к теме Windows Phone в настройках через код? а поменять?

если да, не могли бы вы дать мне пример API, который я могу использовать, или дополнительные библиотеки, которые я могу использовать?

Спасибо


person Bohrend    schedule 17.10.2013    source источник


Ответы (2)


К сожалению, вы не можете. Невозможно изменить тему Windows Phone с помощью кода. Единственный, кто может это пользователь. Это часть концепции Windows Phone.

Единственное, что вы можете сделать, это определить темы, которые используются в ваших собственных приложениях. Извините за плохие новости...

person Robin-Manuel Thiel    schedule 17.10.2013

Вы можете изменить тему для вашего приложения. Доступен пакет Nuget, который делает это еще проще. Вы можете изменить его в фоновой задаче, установив свойство, которое вы проверяете при открытии приложения.

// background agent code
// get random value
IsolatedStorageSettings.ApplicationSettings["Theme"] = randomValue; // this is just a string or something simple
IsolatedStorageSettings.ApplicationSettings.Save();

Когда ваше приложение откроется, вы должны проверить это значение

var theme = "Standard"; 
if(IsolatedStorageSettings.ApplicationSettings.ContainsValue("Theme"))
{
    theme = IsolatedStorageSettings.ApplicationSettings["Theme"];
    // Set the theme
}

Вы можете изменить исходный код менеджера тем, загрузив его с github. Вот дополнительная информация о диспетчере тем. Если вы хотите изменить значения самостоятельно, вы можете сделать это, установив значения ресурсов при запуске papp.

((SolidColorBrush)Resources["PhoneAccentBrush"]).Color = myAccentBrush;
((SolidColorBrush)Resources["PhoneBackgroundBrush"]).Color = myBackgroundBrush;
((SolidColorBrush)Resources["PhoneChromeBrush"]).Color = myChromeBrush;
((SolidColorBrush)Resources["PhoneForegroundBrush"]).Color = myForegroundBrush;
person Shawn Kendrot    schedule 17.10.2013