0

Я пытаюсь изменить фон на странице в соответствии с темой телефона. Я хочу использовать это решение для изменения нескольких страниц и элементов управления.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. Спасибо

ответ

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