загрузить изображение в Winforms, используя пакет URI - PullRequest
2 голосов
/ 24 мая 2011

У меня проблема при попытке показать некоторые изображения на моей winform. В одной форме у меня есть контейнер wpf, у которого есть элемент управления WPF, у которого нет проблем с загрузкой изображений из внешнего exe-файла (которые имеют изображения в качестве ресурсов), который ссылается на dll, которая содержит форму, с контейнером wpf, который показывает их.

Теперь я хочу добавить еще одну winform, и мне нужно показать там те же изображения, которые отображаются с помощью контейнера wpf, но я не могу добавить контейнер wpf в эту форму, потому что мне нужно показать изображения на выпадающий.

Как я могу загрузить эти изображения с помощью пакета URI или как я могу превратить этот URI во что-то, что я могу использовать из моей winform.

пример URI.

pack://application:,,,/myPack;component/Images/image.png

Ответы [ 2 ]

4 голосов
/ 24 мая 2011

Что вы хотите сделать, это прочитать данные изображения для использования в Winforms, поэтому вам необходим прямой доступ к файлу изображения встроенного ресурса, что можно сделать следующим образом:

Uri uri = new Uri("pack://application:,,,/myPack;component/Images/image.png", UriKind.RelativeOrAbsolute);
StreamResourceInfo info = Application.GetContentStream(uri);
System.Drawing.Image myImage = System.Drawing.Image.FromStream(info.Stream);

Редактировать: Если вы получаете исключение из-за неверного порта, убедитесь, что вы зарегистрировали схему пакета, что вы можете сделать, просто сославшись на нее. Так что поместите эту строку кода перед выше:

string s = System.IO.Packaging.PackUriHelper.UriSchemePack; 
0 голосов
/ 06 сентября 2017

Примечание !!

Вы должны использовать это:

Application.Get Ресурс Поток (URI);

Вместо этого:

Application.Get Содержание Поток (URI);

Поскольку содержимое не будет работать с файлом изображения.

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