0

如果我有一个从不打算本地化的应用程序并且资源在同一个程序集中,那么在引用图像时使用包表示法有什么好处吗?

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

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

4

1 回答 1

1

严格来说,你已经在使用一个包 URI,你只是在使用一个相对的。

正如MSDN 文档中有关该主题的说明,Pack URI 表示法的目的是

为识别和加载这些类型的文件提供一致的机制

来自不同的位置,其中可能包括:

  • 当前程序集。
  • 引用的程序集。
  • 相对于装配的位置。
  • 应用程序的源站点。

为了提供这种一致性,URI 方案指定了如何声明绝对和相对 URI:

默认情况下,相对包 URI 被认为是相对于包含引用的标记或代码的位置。但是,如果使用前导反斜杠,则相对包 URI 引用将被视为相对于应用程序的根。

如果您询问绝对与相对包 URI 的好处,那么这个问题只能由您来回答。绝对 URI 的好处是它们始终解析到同一个位置,即使您移动引用 XAML 也是如此。相对 URI 的好处是您的 XAML 及其相关资源可以作为一个单元移动,而不会破坏相对路径。

如果您确定您引用的资源将始终与 XAML 源位于同一程序集中,那么可能是相对路径。如果您认为您可能想要将 XAML 与静态资源分开,那么您应该尽早使用绝对 URI 并使其工作,这是一个很好的论据。

于 2013-04-08T16:17:36.893 回答