StaticResource资源在外部程序集中的位置?

时间:2011-10-07 15:40:14

标签: c# wpf xaml satellite-assembly staticresource

基本上,我想将所有XAML资源保存在外部程序集中(对于我的样式)。我在我的应用程序中引用了这个外部程序集。

是否与附属程序集或其他内容或如何访问这些样式有关,以便我的应用程序仍然可以使用StaticResource标记而不会出现编译错误?

1 个答案:

答案 0 :(得分:5)

假设您将样式保存在另一个程序集中的ResourceDictionary中,您只需将其与当前资源合并(无论它们是Window还是UserControl还是其他任何内容)

如果我们假设

  • 您的其他程序集名为“external.assembly.name”
  • ResourceDictionary位于名称空间资源下;和
  • 字典名为“MyStyles.xaml”

...然后您可以合并下面的词典:

<UserControl.Resources>
    <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary 
              Source="pack://application:,,,/external.assembly.name;component/Resources/MyStyles.xaml" />
        </ResourceDictionary.MergedDictionaries>
        <!-- other resources go here -->
    </ResourceDictionary>
</UserControl.Resources>