Программирование мобильных устройств на платформе .NET Compact Framework
Шрифт:
' ЗАДНЕГО ПЛАНА
'------------------------------------------------------------------------
Private Sub buttonDrawBackgroundPlusForeground_Click(ByVal _
sender As Object, ByVal e As System.EventArgs) _
Handles buttonDrawBackgroundPlusForeground.Click
SetPictureBoxDimensions
CreateForeground
CreateBackground
'Получить
объект Graphics изображения ЗАДНЕГО ПЛАНА, поскольку
'именно поверх него мы собираемся рисовать.
Dim gfx As System.Drawing.Graphics
gfx = System.Drawing.Graphics.FromImage(m_backgroundBitmap)
'-------------------------------------------------------
'Создать класс ImageAttributes. Этот класс позволяет нам
'задать прозрачный цвет на наших операций рисования
'-------------------------------------------------------
Dim trasparencyInfo As System.Drawing.Imaging.ImageAttributes
trasparencyInfo = New System.Drawing.Imaging.ImageAttributes
'----------------------
'Задать прозрачный цвет
'----------------------
trasparencyInfo.SetColorKey(System.Drawing.Color.Yellow, _
System.Drawing.Color.Yellow)
'Задать прямоугольник рисунка
Dim rect As System.Drawing.Rectangle = _
New System.Drawing.Rectangle(0, 0, _
m_backgroundBitmap.Width, m_backgroundBitmap.Height)
'-----------------------------------------------------------------------
'Нарисовать изображение ПЕРЕДНЕГО ПЛАНА поверх изображения ЗАДНЕГО ПЛАНА
'и использовать прозрачный цвет в ImageAttributes для создания окна
'прозрачности, через которое виден задний план
'-----------------------------------------------------------------------
gfx.DrawImage(m_foregroundBitmap, rect, 0, 0, _
m_foregroundBitmap.Width, m_foregroundBitmap.Height, _
System.Drawing.GraphicsUnit.Pixel, trasparencyInfo)
'Очистить
gfx.Dispose
'Показать результат в виде растрового изображения
PictureBox1.Image = m_backgroundBitmap
End Sub
Листинг 13.6. Код формы, демонстрирующий загрузку встроенных ресурсов
'-----------------------------------------------------------
'Загрузить
изображение и отобразить его в объекте PictureBox
'-----------------------------------------------------------
Private Sub Button1_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Button1.Click
LoadImageFromResource
PictureBox1.Image = m_myBitmapImage
End Sub
Private m_myBitmapImage As System.Drawing.Bitmap
'------------------------------------------------------------------
'Загрузить изображение, которое хранится в виде встроенного ресурса
'в нашей сборке
'------------------------------------------------------------------
Public Sub LoadImageFromResource
'Если изображение уже загружено,
'то не имеет смысла делать это повторно.
If Not (m_myBitmapImage Is Nothing) Then
Return
End If
'----------------------------------------------------
'Получить ссылку на двоичную сборку нашего приложения
'----------------------------------------------------
Dim thisAssembly As System.Reflection.Assembly = _
System.Reflection.Assembly.GetExecutingAssembly
'-------------------
'Получить имя сборки
'-------------------
Dim thisAssemblyName As System.Reflection.AssemblyName = _
thisAssembly.GetName
Dim assemblyName As String = thisAssemblyName.Name
'-----------------------------------------------------------------------
'Извлечь поток изображения из нашей сборки и создать соответствующую ему
'битовую карту в памяти
'ПРИМЕЧАНИЕ: Имя потока ресурса ResourceStream ЧУВСТВИТЕЛЬНО К РЕГИСТРУ,
' поэтому имя изображения должно В ТОЧНОСТИ совпадать с именем
' файла изображения, который вы добавили в проект
'-----------------------------------------------------------------------
m_myBitmapImage = New System.Drawing.Bitmap( _
thisAssembly.GetManifestResourceStream( _
Поделиться:
Популярные книги
Держать удар
11. Девяностые
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Изгой. Пенталогия
Изгой
Фантастика:
фэнтези
9.01
рейтинг книги
Имперец. Земли Итреи
11. Путь
Фантастика:
героическая фантастика
боевая фантастика
5.25
рейтинг книги
Генерал Империи
4. Безумный Макс
Фантастика:
альтернативная история
5.62
рейтинг книги
Хозяйка лавандовой долины
2. Хозяйка своей судьбы
Любовные романы:
любовно-фантастические романы
6.25
рейтинг книги
Аристократ из прошлого тысячелетия
3. Соприкосновение миров
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Войны Наследников
9. Десять Принцев Российской Империи
Фантастика:
городское фэнтези
попаданцы
аниме
5.00
рейтинг книги
Кодекс Охотника. Книга XXIV
24. Кодекс Охотника
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Сын Петра. Том 1. Бесенок
1. Сын Петра
Фантастика:
попаданцы
альтернативная история
6.80
рейтинг книги
На изломе чувств
Любовные романы:
современные любовные романы
6.83
рейтинг книги
Газлайтер. Том 16
16. История Телепата
Фантастика:
боевая фантастика
попаданцы
аниме
5.00
рейтинг книги
На границе империй. Том 9. Часть 5
18. Фортуна дама переменчивая
Фантастика:
космическая фантастика
попаданцы
5.00
рейтинг книги
Без шансов
2. Пробуждение Системы
Фантастика:
боевая фантастика
рпг
постапокалипсис
5.00
рейтинг книги
Последний попаданец 2
2. Последний попаданец
Фантастика:
юмористическая фантастика
попаданцы
рпг
7.50