Ресурсы изображений WPF и редактор ресурсов Visual Studio 2010

StackOverflow https://stackoverflow.com/questions/3026832

Вопрос

Моя мотивация на этот вопрос действительно просто указать изображение, которое будет использоваться в пользовательском управлении через свойство зависимости для impactorce. Я ударю некоторые болевые точки, связанные с тестированием управления, доступа и единицы для этого.

  • Ребен ресурсов хороший инструмент для поддержания изображений для приложения?
  • Какой лучший способ перевести растровое изображение из редактора на imageSource?
  • Как я могу схватить имя файла ресурса из редактора?
Это было полезно?

Решение

Нет, редактор ресурсов не является хорошим инструментом для этого.

В приложении WPF лучший способ - поставить все ваши изображения в каталог «Изображения» и отметьте каждый как «ресурс». Тогда вы можете ссылаться на них непосредственно в элементы управления изображения и в другом месте.

Вот точные шаги:

  • Урожай и в противном случае настройте свои изображения, используя вашу любимую программу редактирования растровых изображений (Paint.net, Photoshop и т. Д.)
  • Сохранить их как файлы .png (или .jpg или .gif, если вы предпочитаете)
  • Создайте папку «Изображения» внутри вашего решения Visual Studio (или нескольких папок, однако вы хотите организовать его)
  • Перетащите изображения с жесткого диска в папку «Изображения» (или щелкните правой кнопкой мыши проект, выберите New -> Существующий элемент и выберите изображения)

Теперь вы можете легко ссылаться на ваши изображения в XAML:

<Image Source="Images/MyImage.png" />

Или в коде:

var source = (BitmapSource)Application.LoadComponent(
               new Uri("Images/MyImage.png", UriKind.Relative));

Вы также можете ссылаться на изображения во внешних собраниях:

<Image Source="ReferencedAssembly;v1.0.0.1;component/Images/MyImage.png" />

Который в коде будет:

var source = (BitmapSource)Application.LoadComponent(
               new Uri("ReferencedAssembly;v1.0.0.1;component/Images/MyImage.png",
                 UriKind.Relative));
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top