Как получить доступ к встроенному ресурсу приложения

Приведенный в листинге 13.6 код демонстрирует, как загрузить растровое изображение из потока встроенного ресурса в ваше приложение. В соответствии с предыдущим изложением в качестве изображения для примера используется файл MyImage.PNG. Этот код следует поместить в форму с элементами управления Button и PictureBox. Как и в предыдущих примерах, для подключения события button1_click к кнопке button1 следует дважды щелкнуть на кнопке в окне конструктора форм, в результате чего будет автоматически сгенерирован костяк функции.

Листинг 13.6. Код формы, демонстрирующий загрузку встроенных ресурсов

System.Drawing.Bitmap m_myBitmapImage;

//------------------------------------------------------------------

//Загрузить изображение, которое хранится в виде встроенного ресурса

//в нашей сборке

//------------------------------------------------------------------

public void LoadImageFromResource {

 //Если изображение уже загружено,

 //то не имеет смысла делать это повторно.

 if (m_myBitmapImage !=null) {

  return;

 }

 //----------------------------------------------------

 //Получить ссылку на двоичную сборку нашего приложения

 //----------------------------------------------------

 System.Reflection.Assembly thisAssembly = System.Reflection.Assembly.GetExecutingAssembly;

 //-------------------

 //Получить имя сборки

 //-------------------

 System.Reflection.AssemblyName thisAssemblyName = thisAssembly.GetName;

 string assemblyName = thisAssemblyName.Name;

 //-----------------------------------------------------------------------

 //Извлечь поток изображения из нашей сборки и создать соответствующую

 //ему битовую карту в памяти.

 //ПРИМЕЧАНИЕ: Имя потока ресурса ResourceStream ЧУВСТВИТЕЛЬНО К РЕГИСТРУ,

 // поэтому имя изображения должно В ТОЧНОСТИ совпадать с именем

 // файла изображения, который вы добавили в проект

 //-----------------------------------------------------------------------

 m_myBitmapImage = new System.Drawing.Bitmap(thisAssembly.GetManifestResourceStream(assemblyName + ".MyImage.PNG"));

}

//-----------------------------------------------------------

//Загрузить изображение и отобразить его в объекте PictureBox

//-----------------------------------------------------------

private void button1_Click(object sender, System.EventArgs e) {

 LoadImageFromResource;

 pictureBox1.Image = m_myBitmapImage;

}

Перейти на страницу:

Похожие книги