Главная » C#, Компоненты » Создаем проект

0

Для начала создадим новый проект типа Windows Control Library (рис. 5.1). По умолчанию Visual Studio добавляет класс UserControii, который надо переименовать в GradientLabei (именно так мы назовем наш класс метки с градиентной заливкой). Можно переименовать и сам файл тоже. Полученный класс мы наследуем от класса Label (придется еще удалить присваивание свойства AutoScaieMode, т. к. у класса Label его нет). Вот, собственно, и все. Компилируем. Наш первый компонент готов!

Те, кто мне не верит (действительно, очень уж все просто), могут добавить к нашему проекту еще один проект— типа Windows Forms, а затем открыть редактор любой формы. Наш новый компонент будет блистать в окне Toolbox (Инструменты) стандартным значком и отсутствием опознавательных знаков (рис. 5.2). В дальнейшем мы исправим и то, и другое, а пока вспомним, что я обещал градиентную заливку.

Рис. 5.1. Для создания компонента нужно создать проект Windows Control Library

 

Рис. 5.2. Новый компонент GradientLabel

Добавим два свойства— startcoior и Endcoior, которые будут соответствовать цветам начала и завершения градиента, и перекроем метод OnPaint о, внутри которого будем рисовать градиентную заливку (листинг 5.1). По умолчанию заливка будет переходить от ярко-зеленого (Light Green) к темпо- сииему (Dark Blue) цвету. Результат показан на рис. 5.3 (иллюстрации черно- белые, поэтому придется поверить мне на слово или скомпилировать код, приведенный на компакт-диске).

Класс Gradient Label станет нашим базовым проектом, с помощью которого мы будем изучать средства времени разработки.

Листинг 5.1. Класс GradiantLabel

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Drawing;

using System.Data;

using System.Text;

using System. Windows . Forms;

namespace MyControl

{

public partial class GradientLabel : Label

f

private Color startColor = Color.LightGreen; private Color endColor = Color.DarkBlue;

// Цвет начала заливки

public Color StartColor {

get { return startColor; } set { startColor = value; }

}

// Цвет завершения заливки public Color EndColor t

get { return endColor; } set { endColor = value; }

}

// Метод OnPaint

protected override void OnPaint{PaintEventArgs pe)

[

11 Вызываем базовый OnPaint base.OnPaint(ре);

11 Заливаем

Color cl = Color. FromArgbUOO, startColor) ; Color c2 = Color. FromArgbUOO, endColor); Brush b – new Drawing2D.LinearGradientBrush(

ClientRectangle, cl, c2, 10); pe.Graphics.FillRectangle(b, ClientRectangle);

b.Dispose();

}

public GradientLabel()

f

InitializeCcmponent();

}

)

}

Рис. 5.3. Градиентная заливка

Литература:

Агуров П. В. C#. Разработка компонентов в MS Visual Studio 2005/2008. – СПб.: БХВ-Петербург, 2008. — 480 е.: ил.

По теме:

  • Комментарии