Присоединяемое свойство "ThemeDictionaries" не найдено в типе "ResourceDictionary"

Следующий код находится в app.xaml в приложении Windows Phone 8. Получает ошибку The attachable property "ThemeDictionaries" was not found in type "ResourceDictionary", Кроме того, он не устанавливает фон. Я пытаюсь установить фон для всего приложения с возможностью изменить его с помощью (App.Current.Resources["BackgroundImage"] as ImageBrush).ImageSource = imgSrc; через код C#.

<Application
    x:Class="MyApp.App"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:phone="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone"
    xmlns:shell="clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone">  
     <Application.Resources>
          <ResourceDictionary>
           <ResourceDictionary.ThemeDictionaries>
              <ResourceDictionary x:Key="Default">
                    <ImageBrush x:Key="BackgroundImage" ImageSource="Assets/BackgroundDefault.jpg" Stretch="UniformToFill" />
              </ResourceDictionary>
              <ResourceDictionary x:Key="Dark">
                    <ImageBrush x:Key="BackgroundImage" ImageSource="Assets/BackgroundDark.jpg" Stretch="UniformToFill" />
              </ResourceDictionary>
           </ResourceDictionary.ThemeDictionaries>
            <local:LocalizedStrings xmlns:local="clr-namespace:MyApp" x:Key="LocalizedStrings"/>
            <DataTemplate x:Key="SmallPanoramaTitle">
                <ContentPresenter>
                    <TextBlock Text="{Binding}" FontSize="25" Margin="0,30,0,0" />
                </ContentPresenter>
            </DataTemplate>
        </ResourceDictionary>
      </Application.Resources>
      <Application.ApplicationLifetimeObjects>
        <!--Required object that handles lifetime events for the application-->
        <shell:PhoneApplicationService
            Launching="Application_Launching" Closing="Application_Closing"
            Activated="Application_Activated" Deactivated="Application_Deactivated"/>
       </Application.ApplicationLifetimeObjects>
</Application>

1 ответ

Решение

ResourceDictionary.ThemeDictionaries недоступно в приложениях Windows Phone Silverlight.

Вы можете использовать библиотеку ThemeManager для управления своими темами в WP silverlight. Это отличная библиотека, и она также доступна в nuget.

Смотрите эту страницу, чтобы понять, как использовать ThemeManager . Вы также можете загрузить пользовательские файлы темы

Другие вопросы по тегам