在Silverlight中加载图片有很多选项,具体取决于你想要做什么,但这个小问题让我有些困惑。希望有人能帮到我!
在Web项目中,在ClientBin目录中,我有一个名为Images的目录,其中包含一个png文件。
在MainPage.xaml文件中,我可以创建一个Image对象,将其称为mainImage,然后在后面的代码中使用它在构造函数中:
BitmapImage src = new BitmapImage(new Uri(“Images / myImage.png”,UriKind.Relative)); mainImage.SetValue(Image.SourceProperty,src);
这一切都运行正常,但是当我创建具有相同功能的UserControl然后在MainPage.xaml上创建该控件的实例时,应用程序运行但我没有得到任何图像。这是为什么?
我还要指出新的用户控件已在Controls文件夹中创建,因此具有不同的命名空间(solutionName.Controls或其他)
任何帮助都会很棒,如果您需要更多信息,请询问(尽量保持简短)
克里斯
答案 0 :(得分:2)
更改为此图像创建URI的方式:
Uri url = new Uri(Application.Current.Host.Source, "Images/myImage.png");
BitmapImage src = new BitmapImage(url);
这将使用xap作为根uri,然后相对于该url创建url,这样无论当前url是什么,它都将起作用。