Silverlight图像加载

时间:2009-07-13 20:40:49

标签: silverlight image

我是一个刚刚开始使用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;

    }

图像设置为“资源”和“不复制”。

2 个答案:

答案 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或?

祝你好运!