Silverlight图像加载

3
我是一名初学者,刚开始使用 Silverlight,并有一个非常基础的问题。我想要显示一个 .png 图像。我已经在 page.xaml 文件中完成了这个操作,但我想在代码(C#)中完成,这样我就可以在程序运行时添加和移除图像。我看到了一些代码,其中你将图像添加到 Canvas 的 Children 中,但是当我这样做时,没有任何图像被显示出来。能否提供一些代码以及放置代码的位置?这是我一直在使用的代码。没有异常,但也没有图像出现。
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个回答

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 请求的实用程序也可能有助于跟踪代码中的错误 URI,这是我能想到的可能出错的地方。希望能有所帮助。

0

我测试了你的代码,对我来说它很好用,所以正如Raumornie已经暗示的那样,最有可能是与图像路径有关的问题。根据你的代码,图片文件是否位于Silverlight项目中名为Image的文件夹中,并且只命名为MrBlue?快速查看,似乎缺少.png后缀,或者?

祝你好运!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接