我一直在开发一个Windows Phone 7应用程序,经过一些谷歌搜索似乎对于我已添加到Visual Studio项目的图像,我需要将构建操作设置为“内容”以便能够在我的应用程序中引用图像。
但是,Windows Phone列表应用程序项目模板包含一个图像(ArrowImg.png),其构建操作设置为“资源”,并且仍可从应用程序中引用。
我想知道是否有人可以确认我们肯定应该使用内容构建操作,或者是否有某种方法来访问使用资源构建操作添加到项目中的图像,如项目示例中所示,我们应该用而不是?
答案 0 :(得分:10)
如果将操作设置为“内容”,则图像将“按原样”包含在XAP中。 如果将操作设置为“资源”,则图像将嵌入到共享DLL中。
在很多情况下你都可以使用。使用一个而不是另一个可能存在性能或其他问题,但我不知道并且从未注意到任何问题。
为了它的价值,除非我需要专门制作资源,否则我会使用内容。
使用当前的(Beta)工具,我看到VS抱怨在XAML中直接引用的图像应该设置为“Resource”(如果设置为“Content”),但应用程序可以正常工作。希望这是一个将在RTM工具中解决的问题。
中的讨论答案 1 :(得分:3)
构建操作都是正确的。
在解决与构建操作相关的问题时,还需要考虑使用的路径。
我见过很多人遇到麻烦,因为他们认为他们已经不恰当地设置了他们的构建行为。
您可以设置构建操作,以满足您何时承担加载时间成本的要求,您只需要调整路径以适应。
此帖子中有关该主题的更多信息。
你可以将内容比作懒惰 加载资源版本。
区别在于你会招致的 当所有资源的性能受到影响时 加载程序集以启动 你的应用。
内容,另一方面, 性能命中时间推迟到 你用它。
哪个更合适会因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;