从外部文件或程序集加载WPF样式或其他静态资源

Shi*_*mmy 66 wpf xaml styles assemblies resourcedictionary

我有一些WPF应用程序,我希望我的所有样式都在共享程序集中,而不是分别在每个应用程序中声明它们.

我正在寻找一种方法,所以我不必改变我Style="{StaticResource BlahBlah}"现有的应用程序; 我只想添加对此样式程序集的引用,并将其从当前应用程序中删除,因此它从程序集中获取.

有什么办法吗?

Shi*_*mmy 112

引用外部ResourceDictionary(XAML文件):

<Application.Resources>
    <ResourceDictionary Source="MyResources.xaml" />
</Application.Resources>
Run Code Online (Sandbox Code Playgroud)

引用外部ResourceDictionary(DLL):

<Application.Resources>
    <ResourceDictionary Source="/MyExternalAssembly;component/MyResources.xaml" />
</Application.Resources>
Run Code Online (Sandbox Code Playgroud)

  • @amkh,一旦将该样式导入范围,您就可以重新声明并覆盖它,在高范围级别创建一个新样式,将它设置为``BasedOn` to` {StaticResource {x:Type TextBox}}`(用适当的替换TextBox)类型. (3认同)