Windows Phone 7: как создать тему приложения? - PullRequest
0 голосов
/ 16 сентября 2010

Я хотел бы определить тему для моего приложения Windows Phone 7, которая будет применяться при запуске приложения независимо от системной темы, установленной в меню телефона «Настройки».Как это можно сделать?

Я вижу в MSDN, что Fill = "{StaticResource PhoneAccentBrush}" позволяет элементу управления, использующему эту кисть, реагировать на общесистемные изменения темы.Как я могу сделать то же самое: позволить элементу управления получить свою кисть не из настроек системы, а из настроек моего приложения?

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

1 Ответ

4 голосов
/ 17 сентября 2010

В Silverlight нет API для конкретной темы.У вас есть один или несколько словарей ресурсов, которые вы можете использовать для определения набора стилей, которые будут применяться к вашим элементам управления.

в файле Theme1.xaml:

<Style x:Key="HeadingStyle" TargetType="{x:Type Label}">
     <Setter Property="Foreground" Value="Black"/>
</Style>

вФайл Theme2.xaml:

<Style x:Key="HeadingStyle" TargetType="{x:Type Label}">
  <Setter Property="Foreground" Value="Red"/>
</Style>

в App.xaml (тема по умолчанию или ссылка на файл default.xaml):

<Application.Resources>
   <Style x:Key="HeadingStyle" TargetType="{x:Type Label}">
    <Setter Property="Foreground" Value="blue"/>
  </Style>
</Application.Resources>

Чтобы изменить текущую «тему»:

Application.Current.Resources = Application.LoadComponent(new Uri("Theme2.xaml", UriKind.RelativeOrAbsolute));

У меня сейчас нет установленных инструментов RTM, поэтому я не могу протестировать этот код.

...