Изображения PNG и jpg не отображаются в приложении C # - PullRequest
0 голосов
/ 12 декабря 2011

У меня проблема с отображением определенных изображений в моем приложении с использованием C #.Я использую класс Image для указания местоположения и BitmapImage для указания источника.UriSource является относительным, и я просто указываю имя.Это работало для некоторых изображений, но для других изображение просто не появляется.Мой экземпляр изображения имеет размер 35x35, а другой - размер 100x100 (в пикселях).

Кто-нибудь знает, почему это может происходить и как это исправить?

Спасибо.Вот код, который я использовал:

    Image removeImage = new Image();
    removeImage.HorizontalAlignment = HorizontalAlignment.Left;
            removeImage.VerticalAlignment = VerticalAlignment.Top;
            removeImage.Margin = new Thickness(490, 10, 0, 0);
            removeImage.Width = 35;
            removeImage.Height = 35;
            BitmapImage source = new BitmapImage();
            source.BeginInit();
            source.UriSource = new Uri("delete.png", UriKind.RelativeOrAbsolute);
            source.EndInit();
            removeImage.Source = source;
            removeImage.Stretch = Stretch.None;
            removeImage.Visibility = Visibility.Visible;
            removeImage.MouseDown += new MouseButtonEventHandler(removeImage_MouseDown);

Ответы [ 2 ]

2 голосов
/ 12 декабря 2011

Не уверен насчет расположения файлов изображений. Если изображения находятся в папке вашего текущего проекта, вам нужно установить Copy To Output Directory=Copy Always свойство файла изображения из окна свойств Windows.

0 голосов
/ 12 декабря 2011

Лучший из известных мне способов диагностики такой проблемы (при условии, что быстрый экспертный анализ кода ни к чему не приведет) - это использовать ProcessMonitor: http://technet.microsoft.com/en-us/sysinternals/bb896645

Вы можете использовать этот инструмент для мониторинга всей файловой активности на вашем компьютере (убедитесь, что вы используете фильтры include / exclude для ограничения шума).

Весьма вероятно, что причина в том, что изображения не отображаются, в том, что ваше приложение ищет их в неправильном месте (либо они не были скопированы, либо относительный путь отключен).

ProcessMonitor будет регистрировать каждую попытку, предпринимаемую Windows для доступа к вашему файлу .jpg (независимо от того, будет он неудачным или успешным). Если вы ищете имя файла в журнале, вы должны найти его, возможно, вместе с сообщением об ошибке и полным путем, который Windows использовала для открытия файла.

Наиболее распространенные результаты, которые я вижу:

  1. Путь, который фактически использовался, отличался от необходимого вам пути.
  2. Путь был правильный, но ваших файлов там не было (проблема сборки / копирования / установки)
  3. Путь был правильным, но у вашего веб-приложения не было разрешений на чтение файла.

Во всех этих случаях ProcessMonitor покажет вам, что произошло.

...