当我将WPF UserControl用于其内置项目以外的项目时,我的WPF UserControl无法找到资源
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了当我将WPF UserControl用于其内置项目以外的项目时,我的WPF UserControl无法找到资源相关的知识,希望对你有一定的参考价值。
因此,我将WPF用户控件构建为较大解决方案的一部分。我正在构建另一个应用程序,该用户控件可以很好地工作。我在新应用程序中添加了对DLL的引用,将其连接并编译。窗口加载,我可以看到它告诉我找不到的图像。在显示主窗口并填充用户控件后,引发异常,说明...
System.IO.IOException:'无法找到资源'resources / nosortnofilter.png'。]
用户控件是一个DataGrid,其中添加了一些扩展。它抛出的列是“ id”。如您在图像中看到的,红色箭头显示了在所有列中显示的nosortnofilter.png图像。那么为什么会抛出此异常?
它引发的代码行在这里。
If ImageName = "" Then ImageName = "NoSortNoFilter"
img.Source = New BitmapImage(New Uri("pack://application:,,,/Resources/" & ImageName & ".png"))
因此,从我的角度来看,一切看起来都不错。希望有人可以看到我没看到的内容。
编辑:找到了solution。这可行。但是它仍然不能回答为什么原始的pack://格式的URI只适用于原始解决方案的问题。
img.Source = New BitmapImage(New Uri($"Resources/ImageName.png", UriKind.Relative))
答案
这是应用程序程序集中资源的URI:
pack://application:,,,/Resources/
要在DLL中获取资源,URI看起来更像这样:
pack://application:,,,/[DLLNAME];component/Resources/
以上是关于当我将WPF UserControl用于其内置项目以外的项目时,我的WPF UserControl无法找到资源的主要内容,如果未能解决你的问题,请参考以下文章