【问题标题】:Correctly Adding Style Resource Files to C# WPF Project将样式资源文件正确添加到 C# WPF 项目
【发布时间】:2015-07-06 15:18:18
【问题描述】:

我读过很多关于ResourceDictionaries 的文章,但我不确定它们与文件系统的关系。 如果我引用了ResourceDictionary Source="/X/a.b",这是否意味着我可以将资源文件a.b 放在X 目录下,其中X 与我的bin, obj, App.xaml 等是同一目录?

我正在尝试用 Selen.Wpf.SystemStyles 做这样的事情,但我收到了 FileNotFound 的错误。

显示名称为“Selen.Wpf.SystemStyles”的程序集加载失败 在 ID 为 1 的 AppDomain 的“加载”绑定上下文中。 失败是:System.IO.FileNotFoundException:无法加载文件 或程序集 'Selen.Wpf.SystemStyles, Culture=neutral' 或其其中之一 依赖关系。系统找不到指定的文件。

我已将所有资源放入目录中,并确认文件符合我认为的文件系统预期。 我错过了其他约定吗?

资源导入代码为:

    <Application.Resources>
    <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary 
            Source="pack://application:,,,/Selen.Wpf.SystemStyles;component/Styles.xaml"/>
        </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>
</Application.Resources>

【问题讨论】:

  • 请输入您正在使用的代码。
  • 很抱歉这个问题没有我想的那么清楚。如果有办法改进它,那就太好了。我是 wpf 的新手
  • @PatrickHofman 我已经添加了代码
  • Styles.xaml 文件的构建操作属性设置为什么?
  • 我没有将 xaml 直接添加到我的解决方案中,因此它没有构建操作属性。这有可能导致错误吗?这是有道理的。

标签: c# .net wpf xaml


【解决方案1】:

您的代码尝试从名为Selen.Wpf.SystemStyles 的外部程序集中加载资源文件。里面有一个名为Styles.xaml的嵌入式资源文件。

从异常看来,您缺少对提到的程序集的引用,或者它没有被复制到 bin\Debug 目录。

还可以读取 MSDN 上的包 URI。

【讨论】:

    猜你喜欢
    • 2013-08-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-07
    • 2011-08-07
    • 2021-04-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多