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

mic*_*ael 3 c# wpf xaml satellite-assembly staticresource

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

有没有关于附属程序集或诸如此类的内容或如何访问这些样式,以便我的应用程序仍然可以具有StaticResource标记而没有编译错误?

Ste*_*rex 5

假设你保持你的风格在ResourceDictionary中的其他组件,你只需要与您现有的资源进行合并(无论他们是在一个WindowUserControl或其他).

如果我们假设

  • 你的另一个程序集名为'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>
Run Code Online (Sandbox Code Playgroud)