使用Expression Blend中的资源字典来处理WP中的浅色/深色主题

时间:2013-03-20 06:24:20

标签: windows-phone-7 windows-phone-8 windows-phone

我编写了一个自定义ResourceDictionary,以完全相同的方式实现主题支持:通过根据明/暗主题加载适当的主题词典。

 <ApplicationName:ThemeResourceDictionary.LightResources>
                <ResourceDictionary Source="/ApplicationName;component/Resources/Light.xaml"/>
</ApplicationName:ThemeResourceDictionary.LightResources>

<ApplicationName:ThemeResourceDictionary.DarkResources>
    <ResourceDictionary Source="/ApplicationName;component/Resources/Dark.xaml"/>
</ApplicationName:ThemeResourceDictionary.DarkResources>

Stylr文件:

<ResourceDictionary  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"       
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">    
<BitmapImage x:Key="Logo62"  UriSource="/ApplicationName;component/icon_62_dark.png" />   

在我的XAML页面上,我像

一样使用它
<Image Source="{StaticResource Logo62}" Margin="0,4,10,0"/>

当我运行应用程序时一切正常但在Expression Bland中我有一个错误: “资源”Logo62“无法解决”,我没有看到这个图像。 任何人都可以帮我解决这个问题。

1 个答案:

答案 0 :(得分:0)

尝试将资源字典更改为:

<ResourceDictionary  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"       
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">    
<BitmapImage x:Key="Logo62"  UriSource="/icon_62_dark.png" /> 

请注意,我删除了/ ApplicationName; component /

否则,您必须将Visual Studio中的图像构建操作更改为资源而不是内容,否则文件将不会正确构建并包含在项目中。