2010-09-16 4 views
0

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

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

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

ответ

4

В 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, поэтому я не могу проверить этот код.

+0

Вы в значительной степени прибивали его. Согласно документации, вы можете только переопределить системную тему, если вы явно изменяете свойства управления, на которые влияет тема. Ссылка: http://msdn.microsoft.com/en-us/library/ff402557%28VS.92%29.aspx –

+0

Благодарим за ответы! – Manu

Смежные вопросы