Я поклав елемент Image
керування на Вікно, і я хотів би відобразити зображення, яке зберігається у файлі ресурсу проекту з назвою "Resources.resx". Ім'я зображення у файлі ресурсу - "Пошук".
Хтось може показати мені, як я можу робити це?
Відповіді:
Якщо зображення знаходиться у вашій папці ресурсів і для його дії збірки встановлено значення Ресурс. Ви можете посилатися на зображення в XAML таким чином:
"pack://application:,,,/Resources/Search.png"
Припускаючи, що у вас немає жодної структури папок у папці Resources, а це програма. Наприклад, я використовую:
ImageSource="pack://application:,,,/Resources/RibbonImages/CloseButton.png"
коли у мене є папка RibbonImages у папці Resources.
Якщо у вас є зображення в папці «Піктограми» вашого проекту, а його дія побудови - «Ресурс», ви можете звернутися до нього так:
<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;
<Image Source="/Icons/play_small.png" />
Зверніть увагу на косу риску в початку, що означає загляд у кореневій папці. Якщо файл xaml відсутній у кореневій папці, це необхідно, оскільки без косої риски вперед він розпочне пошук у тому ж каталозі, що і файл xaml.
Однією з переваг використання файлу ресурсу є доступ до ресурсів за іменами, тому зображення може змінюватися, ім’я зображення може змінюватися, доки ресурс буде в курсі, відображатиметься правильне зображення.
Ось більш чистий підхід для досягнення цього: Припустимо, Resources.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}} />
де 'Пошук' - це назва ресурсу.
<Image Source="MyRessourceDir\images\addButton.png"/>