包装符号是否适用于同一组件中的WPF图像

时间:2013-04-08 16:02:48

标签: wpf

如果我的应用程序从不打算本地化并且资源在同一个程序集中,那么在引用图像时使用包符号是否有任何优势?

我目前将所有图像都放在Resource文件夹中,并将其构建操作设置为同一程序集中的Resource。我指的是这样的(工作正常)

<Image Source="/Resources/Image1.png"/>

1 个答案:

答案 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来提前做好并尽早使其工作。