【问题标题】:Problems creating Resource Dictionary创建资源字典的问题
【发布时间】:2013-10-24 04:00:04
【问题描述】:

我正在尝试使用以下代码创建 ResourceDictionary

        var rd = new ResourceDictionary
        {
            Source = new Uri(settings.TemplateLocation + templateName + ".xaml")
        };

但是,当我尝试执行此操作时,我收到一个异常消息“ResourceDictionary LoadFrom 操作失败,URI:{location given above}”。我正在尝试从 ClassLibrary 项目中执行此操作。

当我尝试使用示例 WPF 应用程序中的相同位置创建 ResourceDictionary 时,我没有发现任何异常,并且工作正常。

知道会发生什么吗?如果有人需要更多信息来回答这个问题,请告诉我。

【问题讨论】:

  • 查看settings.TemplateLocation + templateName + ".xaml"是否在调试模式下生成有效的文件路径
  • @nit 是的。异常中提到的路径是有效路径。
  • 阿尼,看看答案对你有没有帮助
  • @nit,如果资源文件不是程序集的一部分怎么办?我的意思是如果它们不是嵌入式资源怎么办?这仍然有效吗?在我的情况下,我试图从本地程序集中的文件夹加载资源,这些文件的 BuildAction 是“CopyAlways”到输出目录。
  • 不这样就不行了..

标签: wpf uri resourcedictionary


【解决方案1】:

如果您从项目中引用的类库中加载 ResourceDictionary,请使用:

     Source = new Uri("pack://application:,,,/ReferencedAssembly;component/SubFolder/ResourceFile.xaml", UriKind.Absolute);

在这里,您必须将 ReferencedAssembly 替换为您引用的程序集名称,SubFolder 使用包含您的文件的参考程序集项目中的文件夹名称。如果文件位于根目录中,则无需指定 Subfolder 并且ResourceFile.xaml 加上你的文件名

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多