以下代码位于Windows Phone 8应用程序的app.xaml中。它接收到错误The attachable property "ThemeDictionaries" was not found in type "ResourceDictionary"
。同样,它也不设置背景。我试图在整个应用程序中设置背景,并通过c#代码使用(App.Current.Resources["BackgroundImage"] as ImageBrush).ImageSource = imgSrc;
更改它。
<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>
ResourceDictionary.ThemeDictionaries
在windows phone silverlight应用程序中不可用。
你可以使用ThemeManager库来管理你的主题在WP silverlight。这是一个很好的库,在nuget中也有。
请参阅此页了解如何使用ThemeManager。您还可以加载自定义主题文件