在C# WPF项目中正确添加样式资源文件

3
我已经阅读了很多关于 "ResourceDictionaries" 的内容,但我不确定它们与文件系统的关系是什么。 如果我引用一个 "ResourceDictionary Source ="/X/a.b"",这是否意味着我可以将资源文件 a.b 放在目录 X 下,其中 X 是与我的 "bin,obj,App.xaml" 等文件在同一目录中的目录? 我正在尝试使用 Selen.Wpf.SystemStyles 进行此操作,但我收到了 "FileNotFound" 的错误。
引用块: “显示名称为 'Selen.Wpf.SystemStyles' 的程序集无法在 ID 1 的 AppDomain 的 'Load' 绑定上下文中加载。失败的原因是: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>

请放入您正在使用的代码。 - Patrick Hofman
很抱歉,我的问题表述可能不够清晰。如果有改进的方法,那就太好了。我对WPF还不是很熟悉。 - calben
@PatrickHofman 我已经添加了代码。 - calben
Styles.xaml 文件的构建操作属性设置为什么? - Emond
我没有直接将XAML添加到我的解决方案中,因此它没有构建操作属性。这可能会导致错误吗?这是有道理的。 - calben
1个回答

0

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

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

还可以阅读MSDN上的打包URI。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接