外部程序集中的静态资源?

4

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

是否需要使用卫星程序集或其他方式来访问这些样式,以便我的应用程序仍然可以具有StaticResource标记而不会出现编译错误?

1个回答

6
假设您将样式保存在另一个程序集中的 ResourceDictionary 中,您只需要将其与当前资源合并(无论它们是在 Window、UserControl 或其他任何地方)。
如果我们假设:
- 您的其他程序集名为 'external.assembly.name' - ResourceDictionary 在命名空间 Resources 下; - 字典名为 '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>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接