Загрузка изображений Silverlight - PullRequest
3 голосов
/ 14 июля 2009

Я новичок, только начинающий работать с 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 ]

1 голос
/ 14 июля 2009

Отладка 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 в коде, и это все, что я могу придумать, что здесь может быть неправильно. Надеюсь, это поможет.

0 голосов
/ 18 ноября 2009

Я проверил ваш код, и он отлично работает для меня, так что, как уже подсказал Рауморни, скорее всего, это проблема с путем к изображению. Согласно вашему коду, находится ли файл изображения в папке с именем Image в вашем проекте Silverlight и просто называется MrBlue? На первый взгляд кажется, что отсутствует .png или?

Удачи!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...