Я пытаюсь изменить фон на странице в соответствии с темой телефона. Я хочу использовать это решение для изменения нескольких страниц и элементов управления.Windows Phone - сменить фон согласен с темой
Я добавил файлы (DarkTheme.xaml, LightTheme.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="TestColor">#000000</Color>
<SolidColorBrush x:Key="TestBrush" Color="{StaticResource TestColor}"/>
<BitmapImage x:Key="BackgroundImage"
UriSource="/BodovySystem;component/Assets/Images/Backgrounds/background_black.png" />
<ImageSource x:Key="TestBackground">/Assets/Images/Backgrounds/background_black.png</ImageSource>
</ResourceDictionary>
У меня есть это в App.xaml:
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="/BodovySystem;component/Resources/DarkTheme.xaml" />
<ResourceDictionary Source="/BodovySystem;component/Resources/LightTheme.xaml" />
</ResourceDictionary.MergedDictionaries>
<localization:LocalizedStrings x:Key="LocalizedStrings" />
<DataTemplate x:Key="MySharedTemplate">
<StackPanel Margin="10" >
<TextBlock Text="{Binding Name}"/>
</StackPanel>
</DataTemplate>
</ResourceDictionary>
</Application.Resources>
Я добавил ThemeManager в мой проект и это App конструктору:
// Get the custom theme
if (ThemeManager.IsDarkTheme())
{
var rd = App.Current.Resources.MergedDictionaries[0];
ThemeManager.SetCustomTheme(rd, Theme.Dark);
}
else
{
var rd = App.Current.Resources.MergedDictionaries[1];
ThemeManager.SetCustomTheme(rd, Theme.Light);
}
IsDarkTheme является моим расширением проверьте, когда телефон в темной теме или нет. Но это не совсем так, как я ожидал. Проблема в том, что когда я использую PhoneForegroundBrush, я становлюсь черным для черной темы и так. Итак, что лучше всего подходит для темы приложения к теме телефона. Приложение должно работать как для WP7.1, так и для WP8. Спасибо