c# - 在另一个程序集中引用 ResourceDictionary

标签 c# wpf xaml

我有一个类库项目,它对其他几个项目是通用的。它的程序集名称是“MyCompany”,它的默认命名空间也是“”。

然后在这些其他项目之一(命名空间“MyCompany.Something”)中,我引用了 dll,并且我想使用“MyCompany”中的资源字典。

我找到了这个:Add ResourceDictionary to class library

所以我完全按照它说的做了,我位于“MyCompany”根目录的 xaml 文件被命名为“Recursos.xaml”,构建操作设置为资源,而不是复制和空白自定义工具和自定义工具命名空间,具有以下内容:

<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
  <ResourceDictionary.MergedDictionaries>
    <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Controls.xaml" />
    <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Fonts.xaml" />
    <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Colors.xaml" />
    <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Accents/Blue.xaml" />
    <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Accents/BaseLight.xaml" />
    <ResourceDictionary Source="pack://application:,,,/Resources/Icons.xaml"/>
 </ResourceDictionary.MergedDictionaries>
  -- some other styles...
 </ResourceDictionary>

然后,在我的 WPF 应用程序项目中,我在 App.xaml 中有以下内容:

<Application.Resources>
    <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Controls.xaml" />
            <ResourceDictionary Source="pack://application:,,,/MyCompany;component/Recursos.xaml" />
        </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>
</Application.Resources>

只是为了测试目的添加了 Controls.xaml。那个行得通,但我的行不通:

查找资源字典时出错 "pack://application:,,,/MyCompany;component/Recursos.xaml"

所以不知道为什么不识别。该引用有效,因为我可以使用其中的每个类。

最佳答案

像这样尝试它会起作用: 项目 ABC 引用了项目 XYZ。

   <ResourceDictionary.MergedDictionaries>
        <ResourceDictionary Source="/Project XYZ;component/YourSubFolder/YourResourceFile.xaml" />
    </ResourceDictionary.MergedDictionaries>

然后您可以只使用 YourResourceFile.xaml 中定义的资源。

关于c# - 在另一个程序集中引用 ResourceDictionary,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31716752/

相关文章:

c# - JQuery 从 aspx 页面中获取数据

c# - 从 DataView C# 中获取值(value)

wpf - 如何知 Prop 有扩展选择模式的DataGrid中的选定项目?

c# - 页面中心的 MenuFlyout

c# - 使用 CancellationTokenSource

c# - 如何获取 GettyImages API-KEY?

重写 MeasureOverride 和 ArrangeOverride 时不绘制 WPF UserControl

wpf - 将 UserControl 宽度绑定(bind)到文本框输入

c# - 如何为scaletransform和rotatetransform设置不同的原点中心?

c# - 如何在 xaml 中引用另一个模型?