如果您需要指定所引用的资源是从本地程序集引用的,那么我认为您需要包含“组件”。例如,我有一些代码从我的代码所在的同一程序集中可用的资源加载图标。我这样写:
var SourceUri = new Uri("pack://application:,,,/MyCompany.MyProduct.MyAssembly;component/MyIcon.ico", UriKind.Absolute);
thisIcon = new BitmapImage(SourceUri);
正如文章中所述http://msdn.microsoft.com/en-us/library/aa970069.aspx http://msdn.microsoft.com/en-us/library/aa970069.aspx,以下附加示例说明了“组件”的用法:
以下示例显示位于引用的程序集的项目文件夹的根中的 XAML 资源文件的包 URI。
pack://application:,,,/ReferencedAssembly;component/ResourceFile.xaml
以下示例显示位于引用的程序集的项目文件夹的子文件夹中的 XAML 资源文件的包 URI。
pack://application:,,,/ReferencedAssembly;component/Subfolder/ResourceFile.xaml
以下示例显示 XAML 资源文件的包 URI,该资源文件位于引用的版本特定程序集的项目文件夹的根文件夹中。
pack://application:,,,/ReferencedAssembly;v1.0.0.1;component/ResourceFile.xaml
请注意,引用的程序集资源文件的 pack URI 语法只能与 application:/// 权限一起使用。例如,WPF 中不支持以下内容。
pack://siteoforigin:,,,/SomeAssembly;component/ResourceFile.xaml