我是一个刚刚开始使用Silverlight的初学者,提出了一个非常基本的问题。我想显示一个.png图像。我已经在page.xaml文件中完成了它,但我想在代码(C#)中完成它,以便我可以在程序运行时添加和删除图像。我看过一些代码,你可以在其中添加一个图像到画布的儿童,但是当我这样做时,没有任何图像显示。有人可以提供一些代码以及放在哪里吗?这是我一直在使用的。没有例外,但没有图像出现。
page.myCanvas.Children.Add(LoadImage("Image/MrBlue"));
public Image LoadImage(string resource)
{
Image img = new Image();
Uri uri = new Uri(resource, UriKind.Relative);
ImageSource imgSrc = new System.Windows.Media.Imaging.BitmapImage(uri);
img.SetValue(Image.SourceProperty, imgSrc);
return img;
}
图像设置为“资源”和“不复制”。
答案 0 :(得分:1)
调试Silverlight可能会很痛苦,虽然很有可能在VS2008中设置(你可能已经做过了。如果你没有随意问...)并且可以捕获一些'简单'错误就像你想要的图像有错误的Uri。你的代码看起来很好,虽然我使用的是略有不同。如果你想要一个工作应用程序的例子,我用来加载图像的函数是:
public void ShowPicture(Uri location)
{
Image pic = new Image();
pic.Source = new BitmapImage(location);
Grid.SetColumn(pic, 1);
Grid.SetRow(pic, 1);
LayoutRoot.Children.Add(pic);
}
请注意,我有一个包含System.Windows.Media.Imaging
的使用声明。
即使没有完全调试,像fiddler这样显示http请求的实用程序可能有助于跟踪代码中的坏Uris,这是我能想到的,这可能是错误的。希望它有所帮助。
答案 1 :(得分:0)
我测试了你的代码并且它对我来说很好,所以正如Raumornie已经暗示的那样,它似乎很可能是图像路径的问题。根据您的代码,图像文件是否位于Silverlight项目中名为Image的文件夹中,并且名为MrBlue?快速看,似乎缺少.png或?
祝你好运!