什么是Windows Phone 7图像文件的正确构建操作?

时间:2010-09-03 10:59:02

标签: visual-studio silverlight windows-phone-7

我一直在开发一个Windows Phone 7应用程序,经过一些谷歌搜索似乎对于我已添加到Visual Studio项目的图像,我需要将构建操作设置为“内容”以便能够在我的应用程序中引用图像。

但是,Windows Phone列表应用程序项目模板包含一个图像(ArrowImg.png),其构建操作设置为“资源”,并且仍可从应用程序中引用。

我想知道是否有人可以确认我们肯定应该使用内容构建操作,或者是否有某种方法来访问使用资源构建操作添加到项目中的图像,如项目示例中所示,我们应该用而不是?

2 个答案:

答案 0 :(得分:10)

如果将操作设置为“内容”,则图像将“按原样”包含在XAP中。 如果将操作设置为“资源”,则图像将嵌入到共享DLL中。

在很多情况下你都可以使用。使用一个而不是另一个可能存在性能或其他问题,但我不知道并且从未注意到任何问题。

为了它的价值,除非我需要专门制作资源,否则我会使用内容。

使用当前的(Beta)工具,我看到VS抱怨在XAML中直接引用的图像应该设置为“Resource”(如果设置为“Content”),但应用程序可以正常工作。希望这是一个将在RTM工具中解决的问题。

有关详细信息,请参阅What are the various "Build action" settings in Visual Studio project properties and what do they do?

中的讨论

答案 1 :(得分:3)

构建操作都是正确的。

在解决与构建操作相关的问题时,还需要考虑使用的路径。

我见过很多人遇到麻烦,因为他们认为他们已经不恰当地设置了他们的构建行为。

您可以设置构建操作,以满足您何时承担加载时间成本的要求,您只需要调整路径以适应。

此帖子中有关该主题的更多信息。

Set source to image in C#

  

你可以将内容比作懒惰   加载资源版本。

     

区别在于你会招致的   当所有资源的性能受到影响时   加载程序集以启动   你的应用。

     

内容,另一方面,   性能命中时间推迟到   你用它。

     

哪个更合适会因a而异   个案基础。

     

还要注意路径   参考资源和内容是   不同,可以看到这里。

  //Uri uri = new Uri("/Resources/Images/MyImage.jpg", UriKind.Relative); // Content 
  Uri uri = new Uri("/PhoneApp;component/Resources/Images/MyImage.jpg", UriKind.Relative); // Resource 
  BitmapImage imgSource = new BitmapImage(uri);
  image1.Source = imgSource;