WPF包URI使用三个连续的逗号,例如:
pack://application:,,,/myFolder/myPic.bmp
Run Code Online (Sandbox Code Playgroud)
该,,,
部分应该是什么意思吗?它只是一个分界符吗?逗号之间可以有任何内容吗?
答案在您链接的页面上,
- 权威:
application:///
和
...此外,"/"字符必须替换为","字符和保留字符,例如"%"和"?" 必须逃脱.有关详细信息,请参阅OPC
所以
该
,,,
部分应该是什么意思吗?
它是替代品 ///
逗号之间可以有任何内容吗?
没有.
更正:OPC(开放式包装)链接指向ECMA-376,其中包含类似的示例
pack://http%3c,,www.openxmlformats.org,my.container/a/b/foo.xml
但afaik不适用于WPF.
一个URI是由一个方案,授权,和路径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
Run Code Online (Sandbox Code Playgroud)
pack
URI这同样适用于您的pack
URI:
pack://application:,,,/myFolder/myPic.bmp
scheme = pack://
authority = application:,,,
path = /myFolder/myPic.bmp
Run Code Online (Sandbox Code Playgroud)
这里不寻常的是,权限部分由另一个 URI的编码表示组成。另一个 URI 如下所示:
application:///
scheme = application://
authority =
path = /
Run Code Online (Sandbox Code Playgroud)
它指的是一个“包”——具体地说,是指当前应用程序的资源文件包。从您已经链接的文档页面:
WPF 支持两种权限:application:/// 和 siteoforigin:///。application:/// 权限标识在编译时已知的应用程序数据文件,包括资源和内容文件。siteoforigin:/// 权限标识源文件的站点。
为了用作URI的权限组件pack
,需要对其进行编码,以便其斜杠不会被误解为属于URI的路径组件pack
。
他们选择的编码方式是用逗号替换斜线。
从同一个文档页面:
注意
包 URI 的授权组件是指向包的嵌入 URI,必须符合 RFC 2396。此外,“/”字符必须替换为“,”字符,以及诸如“%”和“%”等保留字符。 “?” 必须逃脱。有关详细信息,请参阅 OPC。
1)加上潜在的查询和片段,但这些在这里不相关。
归档时间: |
|
查看次数: |
955 次 |
最近记录: |