Я очень новичок в WPF. Я поместил элемент управления Image в окне, и я хотел бы установить изображение на элементе управления на изображение, которое хранится в файле ресурсов проекта с именем "Resources.resx". Имя изображения в файле ресурсов - "Поиск". Может ли кто-нибудь показать мне, как я могу это сделать?
Как ссылаться на ресурсы изображений в XAML?
Ответ 1
Если изображение находится в папке ресурсов, а для его действия для сборки установлено значение Ресурс. Вы можете ссылаться на изображение в XAML следующим образом:
"pack://application:,,,/Resources/Search.png"
Предполагая, что в папке "Ресурсы" нет какой-либо структуры папок, и это приложение. Например, я использую:
ImageSource="pack://application:,,,/Resources/RibbonImages/CloseButton.png"
когда у меня есть папка с именем RibbonImages в папке Ресурсы.
Ответ 2
Если у вас есть изображение в папке "Иконки" вашего проекта, и его действие сборки "Ресурс", вы можете ссылаться на него следующим образом:
<Image Source="/Icons/play_small.png" />
Это самый простой способ сделать это. Это единственный способ, которым я мог бы сделать это исключительно с точки зрения ресурсов и без файлов проекта:
var resourceManager = new ResourceManager(typeof (Resources));
var bitmap = resourceManager.GetObject("Search") as System.Drawing.Bitmap;
var memoryStream = new MemoryStream();
bitmap.Save(memoryStream, System.Drawing.Imaging.ImageFormat.Bmp);
memoryStream.Position = 0;
var bitmapImage = new BitmapImage();
bitmapImage.BeginInit();
bitmapImage.StreamSource = memoryStream;
bitmapImage.EndInit();
this.image1.Source = bitmapImage;
Ответ 3
Одним из преимуществ использования файла ресурсов является доступ к ресурсам по именам, поэтому изображение может измениться, имя изображения может измениться, если ресурс обновлен, будет отображаться правильное изображение.
Вот более чистый подход для достижения этого: Предполагая, что Resource.resx находится в пространстве имен UI.Images, добавьте ссылку на пространство имен в свой xaml следующим образом:
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:UI="clr-namespace:UI.Images"
Установите источник изображения следующим образом:
<Image Source={Binding {x:Static UI:Resources.Search}} />
где "Поиск" - это имя ресурса.
Ответ 4
- Добавьте папки в свой проект и добавьте в них изображения через "Существующий элемент".
- XAML похоже на это:
<Image Source="MyRessourceDir\images\addButton.png"/>
- F6 (Build)
Ответ 5
уже обсуждался, кажется, что здесь приведен пример здесь
Вы также можете посмотреть здесь, где вы можете получить более глубокое понимание того, что возможно.