假设我App.xaml
有以下内容:
[...]
<Application.Resources>
<Style TargetType="{x:Type CheckBox}">
<Setter Property="BorderBrush" Value="{StaticResource Theme.CheckBox.Border}" />
<Setter Property="Foreground" Value="{StaticResource Theme.Foreground}" />
</Style>
</Application.Resources>
[...]
现在,我想将这些定义移到外部程序集中。这样我可以在我的应用程序中重用WPF控件和窗口样式。例如,我可以创建NuGet包并在几秒钟内安装这些样式。
答案 0 :(得分:3)
您可以在单独的资源词典中创建一个简单的classLibrary
项目,定义所有样式和模板等(推荐),并将所有这些词典合并到一个词典中。
要使用特定程序集中的那些样式,只需在 App.Xaml 文件中引用它,
以下镜头应该为您提供全局视图
我习惯为每个ResourceDictionary
创建单独的style
(方便访问),所有这些资源词典都合并在 ResourceLibrary.Xaml
现在参考 ControlLibraryAssembly (在添加对它的引用之后),在 app.xaml 文件中添加
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="/ControlLibrary;component/ResourcesDictionaries/ResourceLibrary.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
答案 1 :(得分:1)
您需要进行资源组装。在这里,您可以阅读如何创建它: https://msdn.microsoft.com/en-us/library/aa984332(v=vs.71).aspx