将图像添加到Bing地图中

时间:2011-12-30 16:59:20

标签: windows-phone-7 map bing-maps

我尝试通过以下方式添加图片,但它仍然无效。图像类型是内容。

Image image = new Image();
image.Source = new System.Windows.Media.Imaging.BitmapImage(new Uri("myimage.png", UriKind.Relative));

//Define the image display properties
image.Opacity = 1.0;
image.Stretch = Stretch.Fill;
image.Width = 40;
image.Height = 40;

// Center the image around the location specified


//Add the image to the defined map layer
phoneDetailsLayer.AddChild(image, e.Position.Location);

mapViewAll.Children.Remove(phoneDetailsLayer);
mapViewAll.Children.Add(phoneDetailsLayer);

4 个答案:

答案 0 :(得分:0)

我无法在您的问题中添加评论,但是当您说内容时,我会问您是否已将图像直接添加到包含代码的项目或单独的内容项目中?

假设您已直接添加:

如果您已将“Build Action”设置为“Resource”,那么您应该使用GetResourceStream方法:

Image image = new Image();
StreamResourceInfo resource = Application.GetResourceStream(new Uri("/myimage.png", UriKind.Relative));
var bmp = new System.Windows.Media.Imaging.BitmapImage();
bmp.SetSource(resource.Stream);
image.Source = bmp;

但是,如果您已将“Build Action”设置为“Content”,则应使用GetContentStream方法

Image image = new Image();
StreamResourceInfo resource = Application.GetContentStream(new Uri("/myimage.png", UriKind.Relative));
var bmp = new System.Windows.Media.Imaging.BitmapImage();
bmp.SetSource(resource.Stream);
image.Source = bmp;

答案 1 :(得分:0)

只是为了澄清这个问题的答案。问题不在于资源类型,问题与相对Uri的工作方式有关。就像任何结构良好的项目一样,ericlee在他的项目中使用了不同的文件夹(相对于项目根目录): / pages - 包含实际页面,因此也包含包含上述代码的页面 / images - 包含必须引用的实际PNG图像

在原始代码中,引用“myimage.png”作为相对uri。该应用程序现在将查看“/pages/myimage.png”,因此无法找到该图像。这里的技巧是使用正确的相对URI。它可以构造如下: 1.首先使用两个点进入项目根目录 - > ..(一个用于当前目录,一个额外增加一个级别) 2.现在参考/图像 - > ../图片 3.现在添加实际的文件引用 - > ../图像/ myimage.png

如果使用正确的URI,问题就解决了。

答案 2 :(得分:-1)

主要问题似乎是如何获得真正的uri。 对我来说,在这种情况下,下表可以帮助我(我只用德语): Uriformats WP7

http://msdn.microsoft.com/de-de/library/aa970069.aspx

示例:

// Absolute URI (default)
Uri absoluteUri = new Uri("pack://application:,,,/File.xaml", UriKind.Absolute);
// Relative URI
Uri relativeUri = new Uri("/File.xaml", UriKind.Relative);

示例2:

Uri uri = new Uri("pack://application:,,,/File.xaml");

或Codebehind:

'Image compiling is set to "content"
MyImage1.Source = New BitmapImage(New Uri("/Images/MyFile.png", Relative))'only example
Hope that helps

答案 3 :(得分:-3)

/projectname;component/images/menu/lost.png

是正确的方法,你的其余答案真的不起作用