Александр Климов - Программирование КПК и смартфонов на .NET Compact Framework

Здесь есть возможность читать онлайн «Александр Климов - Программирование КПК и смартфонов на .NET Compact Framework» весь текст электронной книги совершенно бесплатно (целиком полную версию без сокращений). В некоторых случаях можно слушать аудио, скачать через торрент в формате fb2 и присутствует краткое содержание. Город: Санкт-Петербург, Год выпуска: 2007, ISBN: 2007, Издательство: Питер, Жанр: Программирование, на русском языке. Описание произведения, (предисловие) а так же отзывы посетителей доступны на портале библиотеки ЛибКат.

Программирование КПК и смартфонов на .NET Compact Framework: краткое содержание, описание и аннотация

Предлагаем к чтению аннотацию, описание, краткое содержание или предисловие (зависит от того, что написал сам автор книги «Программирование КПК и смартфонов на .NET Compact Framework»). Если вы не нашли необходимую информацию о книге — напишите в комментариях, мы постараемся отыскать её.

Мобильные устройства все активнее вторгаются в нашу жизнь. Карманные компьютеры и смартфоны давно утратили статус дорогих игрушек и перекочевали в разряд необходимых устройств. Значит, для них необходимо создавать программное обеспечение. Так почему вы должны оставаться в стороне?
Прочитав эту книгу, вы получите знания, которые позволят вам уверенно создавать программы для карманных компьютеров и смартфонов. А огромное количество разнообразных примеров поможет быстро совершенствоваться и развиваться, обогащая свой опыт работы.
Книга предназначена для начинающих программистов.

Программирование КПК и смартфонов на .NET Compact Framework — читать онлайн бесплатно полную книгу (весь текст) целиком

Ниже представлен текст книги, разбитый по страницам. Система сохранения места последней прочитанной страницы, позволяет с удобством читать онлайн бесплатно книгу «Программирование КПК и смартфонов на .NET Compact Framework», без необходимости каждый раз заново искать на чём Вы остановились. Поставьте закладку, и сможете в любой момент перейти на страницу, на которой закончили чтение.

Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

// получим картинки из ресурсов

Bitmap imgCat = new BitmapCAssembly.GetExecutingAssembly().

GetManifestResourceStream("Transparent_CS.mycat.jpg"));

Bitmap imgName = new Bitmap(Assembly.GetExecutingAssembly().

GetManifestResourceStream("Transparent_CS.catname.bmp"));

// Очистим экран

g.Clear(Color.White);

// Выводим первую картинку

g.DrawImage(imgCat, 0, 0,

new Rectangle(0, 0, imgCat.Width, imgCat.Height), GraphicsUnit.Pixel);

ImageAttributes attr = new ImageAttributes();

// Устанавливаем красный цвет как прозрачный

attr.SetColorKey(Color.Red, Color.Red);

// Выводим вторую картинку с установленными атрибутами

Rectangle dstRect = new Rectangle(50, 120, imgName.Width, imgName.Height);

g.DrawImage(imgName, dstRect, 0, 0,

imgName.Width, imgName.Height, GraphicsUnit.Pixel.attr);

g.Dispose();

}

ВНИМАНИЕ

He забудьте импортировать пространство имен System.Drawing.Imaging при работе с этим примером.

Если просто наложить одну картинку на другую, то результат будет, мягко говоря, не очень красивым (рис. 6.5).

Рис 65 Неудачный вариант наложения двух картинок Если же воспользоваться - фото 43

Рис. 6.5. Неудачный вариант наложения двух картинок

Если же воспользоваться методом SetColorKeyдля установки прозрачного цвета, то результат наложения двух изображений будет выглядеть достойно (рис. 6.6).

Рис 66 Наложение картинки с использованием прозрачности Округленные - фото 44

Рис. 6.6. Наложение картинки с использованием прозрачности

Округленные прямоугольники

Так как .NET Compact Framework не позволяет создавать округленные прямоугольники встроенными средствами, то необходимо самостоятельно реализовать эту задачу. В этом разделе будет рассматриваться решение, предложенное Алексом Яхниным (Alex Yakhnin) в его блоге blog.opennetcf.org/ayakhnin/. Для достижения заданного эффекта надо нарисовать серию линий, которые соединяют эллипсы, и закрасить внутреннюю область сплошным цветом (рис. 6.7).

картинка 45

Рис. 6.7. Создание прямоугольника со скругленным углами

Соответствующий код приведен в листинге 6.19.

Листинг 6.19

public static void DrawRoundedRectangle(Graphics g, Pen p, Color backColor,

Rectangle rc, Size size) {

Point[] points = new Point[8];

// подготовим точки для фигуры

points[0].X = rc.Left + size.Width / 2;

points[0].Y = rc.Top + 1;

points[1].X = rc.Right - size.Width / 2;

points[1].Y = rc.Top + 1;

points[2].X = rc.Right;

points[2].Y = rc.Top + size.Height / 2;

points[3].X = rc.Right;

points[3].Y = rc.Bottom - size.Height / 2;

points[4].X = rc.Right - size.Width / 2;

points[4].Y = rc.Bottom;

points[5].X = rc.Left + size.Width / 2;

points[5].Y = rc.Bottom;

points[6].X = rc.Left + 1;

points[6].Y = rc.Bottom - size.Height / 2;

points[7].X = rc.Left + 1;

points[7].Y = rc.Top + size.Height / 2;

// приготовим кисть для фона

Brush fillBrush = new SolidBrush(backColor);

// рисуем отрезки и круги для округленного прямоугольника

g.DrawLine(p, rc.Left + size.Width / 2, rc.Top,

rc.Right - size.Width / 2, rc.Top);

g.FillEllipse(fillBrush, rc.Right - size.Width, rc.Top,

size.Width, size.Height);

g.DrawEllipse(p, rc.Right - size.Width, rc.Top, size.Width, size.Height);

g.DrawLine(p, rc.Right, rc.Top + size.Height / 2, rc.Right,

rc.Bottom - size.Height /2);

g.FillEllipse(fillBrush, rc.Right - size.Width, rc.Bottom - size.Height,

size.Width, size.Height);

g.DrawEllipse(p, rc.Right - size.Width, rc.Bottom - size.Height,

size.Width, size.Height);

g.DrawLine(p, rc.Right - size.Width / 2, rc.Bottom,

rc.Left + size.Width / 2, rc.Bottom);

g.FillEllipse(fillBrush, rc.Left, rc.Bottom - size.Height,

size.Width, size.Height);

g.DrawEllipse(p, rc.Left, rc.Bottom - size.Height,

size.Width, size.Height);

g.DrawLine(p, rc.Left, rc.Bottom - size.Height / 2,

rc.Left, rc.Top + size.Height / 2);

g.FillEllipse(fillBrush. rc.Left, rc.Top, size.Width, size.Height);

g.DrawEllipse(p, rc.Left, rc.Top, size.Width. size.Height);

// заполняем прямоугольник, скрывая внутренние эллипсы

g.FillPolygon(fillBrush, points);

// освобождаем ресурсы

fillBrush.Dispose();

}

private void butDrawRoundedRectangle_Click(object sender, EventArgs e) {

Graphics g = CreateGraphics();

Rectangle rc = new Rectangle(10, 10, 200, 50);

DrawRoundedRectangle(g,

new Pen(Color.Black), Color.CadetBlue, rc, new Size(8, 8));

}

Результат работы этого кода показан на рис. 6.8.

Рис 68 Отображение закрашенного прямоугольника со скругленными углами - фото 46

Рис. 6.8. Отображение закрашенного прямоугольника со скругленными углами

Создание экранных снимков

Если при работе с мобильным устройством необходимо сделать скриншоты, то для реализации замысла необходимо использовать внешние устройства. Конечно, можно просто сфотографировать экран, но настоящий программист будет использовать функции Windows API. В этом разделе главы будет рассматриваться пример копирования определенной области окна, всего рабочего окна программы или любого другого окна. Для демонстрации примера надо разместить на форме список, три кнопки и один таймер. Сам код приведен в листинге 6.20.

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Похожие книги на «Программирование КПК и смартфонов на .NET Compact Framework»

Представляем Вашему вниманию похожие книги на «Программирование КПК и смартфонов на .NET Compact Framework» списком для выбора. Мы отобрали схожую по названию и смыслу литературу в надежде предоставить читателям больше вариантов отыскать новые, интересные, ещё непрочитанные произведения.


Гайдар Магдануров - ASP.NET MVC Framework
Гайдар Магдануров
libcat.ru: книга без обложки
Александр Климов
libcat.ru: книга без обложки
Александр Климов
libcat.ru: книга без обложки
Александр Климов
Александр Климов - Реестр Windows 7
Александр Климов
libcat.ru: книга без обложки
Александр Климов
libcat.ru: книга без обложки
Александр Климов
libcat.ru: книга без обложки
Александр Климов
Александр Климов - Гадания
Александр Климов
Отзывы о книге «Программирование КПК и смартфонов на .NET Compact Framework»

Обсуждение, отзывы о книге «Программирование КПК и смартфонов на .NET Compact Framework» и просто собственные мнения читателей. Оставьте ваши комментарии, напишите, что Вы думаете о произведении, его смысле или главных героях. Укажите что конкретно понравилось, а что нет, и почему Вы так считаете.

x