#silverlight #windows-phone-7 #styles
#silverlight #windows-phone-7 #стили
Вопрос:
У меня была сборка приложения с помощью Windows Phone 7.0 SDK. Теперь мне нужно обновить это приложение до Windows Phone 7.1 SDK. Когда я перенес приложение, фон всех моих страниц был изменен на черный. Однако все они были белыми (как и предполагалось), когда я использовал SDK 7.0. Как мне это исправить? С помощью SDK 7.0 все мои страницы были определены как:
<Grid x:Name="LayoutRoot" Background="{StaticResource PhoneBackgroundBrush}">
...
</Grid>
Кисть PhoneBackgroundBrush определена в Styles.xaml. Этот файл содержит следующее:
<ResourceDictionary
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:System="clr-namespace:System;assembly=mscorlib">
<Color x:Key="PhoneBackgroundColor">#FFFFFFFF</Color>
<SolidColorBrush x:Key="PhoneBackgroundBrush" Color="{StaticResource PhoneBackgroundColor}"/>
</ResourceDictionary>
На Styles.xaml есть ссылка в App.xaml, как показано здесь:
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="Resources/Styles.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
Что не так? Как мне вернуть белый фон?
Ответ №1:
См. Эту статью: Переопределение тем в Windows Phone 7.5 (Mango) (прокрутите вниз, чтобы найти части Mango)
Короче говоря: вы больше не можете переопределять унаследованные стили XAML. Вы должны переопределить их в коде C #, например
(App.Current.Resources["PhoneBackgroundBrush"] as SolidColorBrush).Color = Colors.White;