2

假设我有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 包并在几秒钟内安装这些样式。

4

2 回答 2

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>
于 2015-09-03T09:30:30.290 回答
1

您需要进行资源组装。在这里您可以阅读如何创建它: https ://msdn.microsoft.com/en-us/library/aa984332(v=vs.71).aspx

于 2015-09-03T09:14:39.027 回答