我正在开发一个Windows Phone应用程序。
我正在使用图像,当我使用“属性”面板选择图片时,我得到以下XAML:
<Image x:Name="GameImage" Margin="8" Source="/MyApp;component/Assets/Icons/GameImage.png"/>
为什么我会收到“/MyApp;component/...
”? (有没有更好的方法?)
如果我尝试Image.Source="Assets/Icons/GameImage.png"
,为什么它不起作用?
答案 0 :(得分:39)
这是因为您的图片将其构建操作设置为资源(这是默认设置)。如果您将其切换为内容,则可以在XAML中设置源代码,如下所示:
<Image x:Name="GameImage" Margin="8" Source="/Assets/Icons/GameImage.png"/>
要在代码中设置它,您可以这样做:
BitmapImage tn = new BitmapImage();
tn.SetSource(Application.GetResourceStream(new Uri(@"Assets/Icons/GameImage.png", UriKind.Relative)).Stream);
Image.Source = tn;
出于性能原因,您应该使用内容。有关更多详细信息,请参阅此文章:http://www.windowsphonegeek.com/tips/wp7-working-with-images-content-vs-resource-build-action
答案 1 :(得分:0)
标记为嵌入资源的任何内容都是从程序集加载的。因此,使用站点需要知道指定嵌入资源的程序集。在您的情况下,这是MyApp
。
答案 2 :(得分:0)
不要忘记添加:
using System.Windows.Media.Imaging;
BitmapImage tn = new BitmapImage();
tn.SetSource(Application.GetResourceStream(new Uri(@"Assets/Icons/GameImage.png", UriKind.Relative)).Stream);
Image.Source = tn;
答案 3 :(得分:0)
您可以使用:
BitmapImage obj = new BitmapImage();
obj.UriSource = new Uri(mera_image.BaseUri,file.Path);