26

我添加一个 Image.Source 我必须输入以下内容:

playIcon.Source = new BitmapImage(new Uri(@"pack://application:,,,/TempApplication2;component/Images/play.png"));

我正在从 Web 开发转向 WPF C#,但我不明白为什么设置路径中有额外的东西,在 CSS 中我只是添加了一个路径字符串。

有人可以解释为什么有 Uri、pack 和“:,,”, Application2:component 吗?

我是 WPF C# 的新手。

4

2 回答 2

54

pack uri 用于识别和定位应用程序和远程中的资源、文件。WPF 中的包 uri 使用 ' pack://authority/path' 格式。这是 MSDN 中解释这种格式的行,“权限指定包含部件的包的类型,而路径指定包中部件的位置”

WPF 支持两种权限:application:///siteoforigin:///. application:///权限标识资源文件、内容文件。该siteoforigin:///机构识别原始文件的站点。

":///"之所以这样写是":,,,"因为"/"字符必须替换为","字符,并且保留字符(例如"%"and"?"必须被转义)以及指向包的 URI 并且必须符合RFC 2396.

有关更多信息,请阅读“ WPF 中的打包 URI

我也在学习WPF。到目前为止,这就是我对 WPF 中 Pack Uri 的理解。

于 2011-03-22T12:51:59.107 回答
0

也解释分号:

pack://application:,,,/ReferencedAssembly;component/ResourceFile.xaml

如果你想使用 Referenced dll 来引用资源,你可以使用这个。记住 ReferencedAssembly 是指程序集的名称。还要记住,如果将 ResourceFile.xaml 放在 referencedAssembly 的根目录中,则应使用 component/ResourceFile.xaml 指定路径。因此您可以看到,通过 ReferencedAssembly 引用的每个文件都应该始终与组件文件夹相关。例如 pack://application:,,,/MyCustomdll;component/MyResource.xaml。

pack://application:,,,/ReferencedAssembly;component/subfolder/ResourceFile.xaml

与上面指定的类似,如果资源放置在程序集中的子文件夹中,您需要再次引用该相对于组件文件夹的内容。

来源:http ://www.abhisheksur.com/2010/04/pack-uri-to-reference-component.html

于 2021-03-09T17:57:29.127 回答