Программирование >>  Автоматически обновляемые приложения 

1 ... 71 72 73 [ 74 ] 75 76 77 ... 170


Как нарисовать прямоугольник с закругленными краями?

в составе .NET Framework есть много графических методов, рисующих прямоугольники, овалы, сектора и т. п. Но, к сожалению, встроенными методами нельзя нарисовать прямоугольник с закругленными краями. Чтобы восполнить этот недостаток, мы напишем свой собственный метод

DrawRoundedRectangle (ЛИСТИНГ 7.7), рисуюЩИЙ ПОДобныЙ прямоуГОЛЬНИК

(рис. 7.2).

Листинг 7.7;Создание метода, рисующего прямоугольник с закругленными

using System.Drawing.Drawing2D;

public void DrawRoundedRectangle(Graphics g. Pen p, float X, float Y,

float width, float height, float radius)

GraphicsPath gp = new GraphicsPath();

gp.AddLine(X + radius, Y, X + width - (radius * 2), Y) ; gp.AddArc(X + width - (radius * 2), Y, radius * 2,

radius * 2, 270, 90) ; gp.AddLine(X + width, Y + radius, X + width,

Y + height - (radius * 2));

gp.AddArc(X + width - (radius * 2), Y + height - (radius * 2),

radius * 2, radius * 2, 0, 90); gp.AddLine(X + width - (radius * 2), Y + height, X + radius,

Y + height);

gp.AddArc(X, Y + height - (radius * 2), radius * 2, radius * 2, 90, 90);

Запустите проект. Нажмите мышкой на метке labell и, удерживая ее, перетащите мышку в любое место экрана. Отпустите мышку, и цвет, который в данный момент находится под указателем мышки, отобразится в этой метке.

Примечание

Пример находится в папке GetScreenColorDemo на прилагаемом диске.



gp.AddLine(X, Y + height - (radius * 2), X, Y + radius); gp.AddArc(X, Y, radius * 2, radius * 2, 180, 90); gp.CloseFigure() ;

g.DrawPath(p, gp); gp.Dispose();

private void buttonl Click(object sender, EventArgs e) {

DrawRoundedRectangle(CreateGraphics(), new Pen(Color.Red), 20, 20, 200, 200, 30);

Эа1фугленный рямоутльник L PfX

Нарисовать прямоугольник

Рис 7.2. Рисование прямоугольника с закругленными краями

Примечание

Пример рисования прямоугольника с закругленными краями находится в папке DrawRoundedRectangleDemo на прилагаемом диске.

Установка фонового изображения

в некоторых случаях желательно прятать картинки и другие файлы в ресурсах программы. Например, это позволит избежать случайного удаления кар-



I Листинг 7л Фоновый рисунок из ресурса

private void Forml Load(object sender, EventArgs e) {

Bitmap pic = new Bitmap(this.GetType(), p cat2s.jpg ); this.buttonl.Backgroundlmage = pic;

В этом примере мы украшаем кнопку, присвоив ее свойству Backgroundlmage

изображение из ресурсов программы.

Примечание

Если вы портируете код для .NET Compact Framework, то должны постоянно помнить, что зачастую там нет такой возможности. Например, для загрузки из ресурсов приходится использовать другой код, приведенный в листинге 7 9.

[ Листинг 7.9: Альтёр{ативн1йй устройств

Загрузка растрового изображения из ресурса в .NET Compact Framework Assembly assem = Assembly.GetExecutingAssembly(); string filename = MyClass.mypic.bmp ;

Bitmap mypic = new Bitmap(assem.GetManifestResourceStream(filename) ) ;

тинки из папки самим пользователем. Для добавления картинки в проект в качестве ресурса необходимо проделать следующие шаги. Подготовьте графический файл, скопируйте его в папку проекта. Далее, щелкните правой кнопкой по названию проекта в окне Solution Explorer, выберите пункт Add Exiting Item, выберите нужный вам файл и нажмите на кнопку Add. После того как картинка добавлена в проект, нужно указать, что она должна использоваться в виде встроенного ресурса. Для этого нужно щелкнуть правой кнопкой мыши на значке графического файла в окне Solution Explorer и выбрать команду Properties. В разделе Build Action по умолчанию используется пункт Content. Измените это свойство на Embedded Resource. Теперь картинка является частью сборки, и для распространения программы вам понадобится единственный исполняемый файл. Чтобы установить растровое фоновое изображение для элемента управления при помощи картинки, зашитой в ресурсах программы, нужно воспользоваться кодом, приведенным в листинге 7.8.



1 ... 71 72 73 [ 74 ] 75 76 77 ... 170

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика