2015-05-31 9 views
0

Я использую VS2013. .NetFramework 3. Я пишу простой проект, например, как галерею изображений. Я пытаюсь добавить изображение JPEG в Image Control. Сначала я добавляю изображение test.jpg как ресурс. Затем я добавляю элемент управления изображением в окно. На следующем шаге я выбираю изображение в свойстве «Источник». Отображение изображения в режиме разработки. Все в порядке. Но когда я запускаю проект, ничего не отображается. Я искал в google и youtube. Я основал несколько решений, но я не решение моей проблемы (Sorry для ЭСН) Здесь код строкиC# WPF ImageControl не отображает выбранное изображение

<Image Source="pack://siteoforigin:,,,/Resources/1.JPG" ... /> 
+0

Просьба показать нам соответствующие части вашего кода. – Clemens

+0

ok Я добавил строку под вопрос –

+0

Я не вижу никакого изображения, которое я тестировал также с png-изображением, но у меня есть какая-то проблема. Возможно, у меня есть некоторые ошибки в свойствах. –

ответ

1

Для того, чтобы просто отобразить изображение в WPF приложения, выполните следующие действия:

1). В XAML добавить:

<Image Name="imgName" Source="/ProjAssemblyName;component/RelativePathToImageFile" /> 

2). В Visual Studio IDE, выберите файл изображения и проверить его свойство:

Build Action: Resources 
Copy to Output Directory: Do Not Copy 

Примечания: в большинстве типичного случая название Ассамблеи проекта такого же, как пространство имен по умолчанию; проверьте его в диалоговом окне свойств приложения. Также полезная информация, относящаяся к вашему делу, включена в ссылку Microsoft (как указывает член @Clemens): https://msdn.microsoft.com/en-us/library/aa970069%28v=vs.110%29.aspx#Resource_File_Pack_URIs___Local_Assembly.).

Другой вариант установить свойство изображения Build Action для EmbeddedResource и получить объект BitmapImage, соответствующий файлу изображения программно, как следующее:

BitmapImage _bmpImage = new BitmapImage(); 
_bmpImage.BeginInit(); 
_bmpImage.StreamSource = Assembly.GetExecutingAssembly().GetManifestResourceStream(String.Concat(ProjAssemblyName, ImgFile)); 
_bmpImage.EndInit(); 

Этот метод полезен, если дальнейшая обработка изображения считается.

Надеюсь, это поможет. С уважением,

+0

Где 'YourProjNamespace' не является пространством имен, а на самом деле является именем сборки и не нужно указывать, если ресурс находится в одной сборке. См. [URI файла ресурса] (https://msdn.microsoft.com/en-us/library/aa970069 (v = vs.110) .aspx # Resource_File_Pack_URIs ___ Local_Assembly). – Clemens

+0

Правильно: в большинстве случаев эти два названия одинаковы. С наилучшими пожеланиями, –

Смежные вопросы