C# 如何将应用程序资源移动到外部程序集?
假设我有具有以下内容的C# 如何将应用程序资源移动到外部程序集?,c#,wpf,xaml,app.xaml,C#,Wpf,Xaml,App.xaml,假设我有具有以下内容的App.xaml: [...] <Application.Resources> <Style TargetType="{x:Type CheckBox}"> <Setter Property="BorderBrush" Value="{StaticResource Theme.CheckBox.Border}" /> <Setter Property="Foreground" Value="{StaticReso
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软件包并在几秒钟内安装这些样式。您需要制作资源程序集。在这里,您可以阅读如何创建它:
您可以创建一个简单的
类库项目,在单独的资源字典(推荐)中定义所有样式和模板等,并将所有这些字典合并到一个字典中
要使用特定程序集中的那些样式,只需在您的App.Xaml文件中引用它
下面的快照应该为您提供全局视图
我习惯于为每个样式创建一个单独的ResourceDictionary
(便于访问),所有这些资源字典都合并到ResourceLibrary.Xaml
现在,在您的app.xaml文件中添加一个引用,以引用该ControlLibrary程序集
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="/ControlLibrary;component/ResourcesDictionaries/ResourceLibrary.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
这篇精彩文章提供了更多提示和最佳实践,这是一种超干净的XAML文件组织方法!