WPF Pack URIs使用三个连续的逗号,例如:
pack://application:,,,/myFolder/myPic.bmp
,,,
部分应该是什么意思吗?它只是一个分界符吗?可以在逗号之间进行任何操作吗?
答案 0 :(得分:6)
答案在您链接的页面上,
- 权限:
application:///
和
...此外,“/”字符必须替换为“,”字符和保留字符,例如“%”和“?”必须逃脱。有关详细信息,请参阅OPC
所以
,,,
部分应该是什么意思吗?
它可以替代///
逗号之间可以有任何内容吗?
<击> 没有。 击>
更正:OPC(开放式打包)链接指向ECMA-376,其中包含例如
的示例
pack://http%3c,,www.openxmlformats.org,my.container/a/b/foo.xml
但afaik不适用于WPF。
答案 1 :(得分:3)
URI is composed of 计划,权限和路径 1 。
例如,访问此网页的http
网址:
https://stackoverflow.com/questions/16256056/commas-in-wpf-pack-uris
scheme = https://
authority = stackoverflow.com
path = /questions/16256056/commas-in-wpf-pack-uris
pack
URI 这同样适用于您的pack
URI:
pack://application:,,,/myFolder/myPic.bmp
scheme = pack://
authority = application:,,,
path = /myFolder/myPic.bmp
这里不寻常的是权限部分由另一个URI 的编码表示组成。其他URI看起来像这样:
application:///
scheme = application://
authority =
path = /
它指的是&#34;包&#34; - 具体来说,是当前应用程序的资源文件包。来自您已链接的documentation page:
WPF支持两个权限:application:///和siteoforigin:///。 application:/// authority识别编译时已知的应用程序数据文件,包括资源和内容文件。 siteoforigin:/// authority标识原始文件站点。
为了用作pack
URI的权限组件,需要对其进行编码,使其斜杠不会被误解为属于 pack
URI的路径组件
他们选择编码的方式是用逗号替换斜杠
从同一文档页面:
请注意
包URI的权限组件是指向包的嵌入式URI,必须符合RFC 2396.此外,&#34; /&#34;字符必须替换为&#34;,&#34;字符和保留字符,如&#34;%&#34;和&#34;?&#34;必须逃脱。有关详细信息,请参阅OPC。
1)可能还有一个查询和片段,但这些在这里并不相关。