资源字典作为链接文件

时间:2010-03-11 16:30:10

标签: silverlight

资源字典

03-11-2010 10:56 AM |

我有两个不同的项目。我使用add existing item add链接资源目录作为链接。

Silverlight在链接文件时看不到资源字典,并且给出了超出范围的错误。

是否可以解决这个问题或更好的方法在两个项目中使用同一个文件?

2 个答案:

答案 0 :(得分:0)

我会引用通常具有资源字典的程序集(不要将其作为链接添加),然后使用Merged Dictionaries将其添加到应用程序中。您可以在外部程序集中指定资源字典以合并到当前应用程序或页面的资源字典中。

<Application.Resources>
    <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary Source="/SharedThemeAssembly;component/MyStyles.xaml"/>
            ...other ResourceDictionaries to merge in...
        </ResourceDictionary.MergedDictionaries>
     </ResourceDictionary>
</Application.Resources>

我在这里回答了类似的问题: Silverlight: Multiple project sharing the same style files

答案 1 :(得分:0)

如果共享位于silverlight和WPF项目之间,我发现将文件放在silverlight项目中更容易,并将其链接到WPF项目,而不是反过来。

换句话说,文件被移动到silverlight项目,而不是WPF项目,然后“链接”到WPF项目。

还要记住,当文件从WPF引用时,由于它是链接的,您需要更改引用URL,就像它在根目录中一样,如下所示:

<ResourceDictionary 
    Source="pack://application:,,,/AssemblyName;component/DictionaryName.xaml" />

删除上面的文件夹有效,下面的uri不起作用:

<ResourceDictionary 
    Source="pack://application:,,,/AssemblyName;component/FOLDER/DictionaryName.xaml" />