如何从ViewBase中的不同程序集访问动态资源

时间:2012-12-13 06:53:36

标签: wpf xaml resources .net-assembly dynamicresource

我正在使用Xaml文件,该文件是从ViewBase派生的自定义视图,我想访问位于不同程序集中的DynamicResource。我已经看到可以使用类似的东西:

<Application.Resources>
    <ResourceDictionary
    Source="/mylib;Resources/MyStyleDictionary.xaml" />
</Application.Resources>

但是我正在处理类似于:

的xaml文件
<myLib:ViewBase> 
    <Grid>
        <Button>
            Style="{DynamicResource MyButtonStyle}" // I want this style to come from a different assembly
        </Button>
    </Grid>
 </myLib:ViewBase>

我该怎么做?

1 个答案:

答案 0 :(得分:1)

理解动态和静态资源之间的区别非常重要。 What's the difference between StaticResource and DynamicResource in WPF?

但要回答这个问题:

<Application.Resources>
    <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary Source="/SomeOtherAssembly;Resources/SomeOtherDictionaryWithMyButtonStyleKey.xaml" />
            <ResourceDictionary Source="/mylib;Resources/MyStyleDictionary.xaml" />
        </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>
</Application.Resources>

动态引用资源,因此在MyStyleDictionary.xaml中合并之前合并SomeOtherDictionaryWithMyButtonStyleKey.xaml应该有效。