Загрузка внешнего изображения через код XAML в WPF? - PullRequest
9 голосов
/ 18 апреля 2010

У меня есть изображение lock.png рядом с моим exe-файлом WPF в папке images. Теперь я собираюсь загрузить его в проект WPF как изображение, я использовал следующий код XAML:

<Image Stretch="Fill" Source="pack://siteoforigin:,,,/images/lock.png" />

Это работает, но Expression Blend или Visual Studio не показывает его, когда я работаю над проектом.
Как мы можем показать внешние изображения в этих ситуациях?

Ответы [ 7 ]

5 голосов
/ 18 апреля 2010

Попробуйте загрузить ваше изображение динамически. Это должно быть на xaml:

<Image Stretch="Fill" Name="MyImage" />

И это в коде позади. В Window_Loaded или в конструкторе Window:

if (File.Exists(AppDomain.CurrentDomain.BaseDirectory + "images/lock.png"))
            {
                Uri uri = new Uri(AppDomain.CurrentDomain.BaseDirectory + "images/lock.png", UriKind.RelativeOrAbsolute);
                MyImage.Source = BitmapFrame.Create(uri);
            }
4 голосов
/ 29 ноября 2012

Используйте формат как: Проект, компонент / ImagePath

, например

<Image Source="ImageDemo;component/Images/ISIBAR.png" Name="custLogo"/>

Где ImageDemo - имя проекта, Image / ISIBAR.png - путь внутри проекта

1 голос
/ 20 сентября 2016

Может быть проще:

<Image x:Name="ImageObject" Source="file:///C:\\1.jpg"/>

Запомни обратную косую черту!

1 голос
/ 21 апреля 2010

Если изображение относительно вашего расположения в EXE, просто наберите

<Image Source="Images\lock.png" />

Если изображение не является относительным, то у вас есть большая проблема. Синтаксис pack полезен только в том случае, если вы фактически «упаковываете» ресурс в свою сборку.

Проблема с свободными изображениями и Blend заключается в том, что Blend размещает ваш exe-файл во временном каталоге, которым он управляет, и ищет изображения, относящиеся к этому временному каталогу, что приведет к появлению любых путей, которые вам нужны.

0 голосов
/ 02 мая 2015

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

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

0 голосов
/ 12 августа 2013

У меня был такой же вопрос.

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

Также вместо siteoforigin используйте права доступа приложения

источник : https://stackoverflow.com/a/18175145/2672788

0 голосов
/ 18 апреля 2010

Является ли ваша основная среда разработки Visual Studio?Если да, то зачем делать это вручную?В окне «Свойства» вы можете просто просмотреть путь к изображению, которое вы хотите использовать с вашим компонентом изображения

...