如果我的应用程序从不打算本地化并且资源在同一个程序集中,那么在引用图像时使用包符号是否有任何优势?
我目前将所有图像都放在Resource文件夹中,并将其构建操作设置为同一程序集中的Resource。我指的是这样的(工作正常)
<Image Source="/Resources/Image1.png"/>
答案 0 :(得分:1)
严格来说,您已经在使用包URI,而您只是使用了相对的URI。
如MSDN documentation on the subject中所述,Pack URI表示法的目的是
为[s]提供识别和加载这些类型文件的一致机制
来自不同的地方,包括:
- 目前的集会。
- 引用的程序集。
- 相对于装配的位置。
- 应用程序的原产地。
为了提供这种一致性,URI方案指定了如何声明绝对URI和相对URI:
默认情况下,相对包URI被认为是相对于包含引用的标记或代码的位置。但是,如果使用前导反斜杠,则相对包URI引用将被视为相对于应用程序的根。
如果您询问绝对包和相对包URI的好处,那么问题只能由您回答。绝对URI具有以下优点:即使您移动引用XAML,它们也始终会解析到同一位置。相对URI的好处是,您的XAML及其相关资源可以作为一个单元移动而不会破坏相对路径。
如果您确定引用的资源将始终与XAML源位于同一个程序集中,那么相对路径可能就是您的选择。如果您认为您可能希望将XAML与静态资源分开,那么可以使用绝对URI来提前做好并尽早使其工作。