Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Добавление информации о свойствах




Программная реализация компоненты.

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

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

//Листинг 5.1. Класс GradientLabel.

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Drawing;

using System.Drawing.Drawing2D;

using System.Data;

using System.Text;

using System.Windows.Forms;

namespace MyControl

{

public partial class GradientLabel: Label

{

private Color startColor = Color.LightGreen;

private Color endColor = Color.DarkBlue;

public GradientLabel(){ InitializeComponent(); }

public Color StartColor

{

get{ return startColor; }

set{ startColor = value; }

}

public Color EndColor

{

get{ return endColor; }

set{ endColor = value; }

}

protected override void OnPaint(PaintEventArgs pe)

{

Base.OnPaint(pe); // Вызываем базовый метод OnPaint()

Color c1 = Color.FromArgb(100, startColor);

Color c2 = Color.FromArgb(100, endColor);

Brush b = new LinearGradientBrush(ClientRectangle, c1, c2, 10);

pe.Graphics.FillRectangle(b, ClientRectangle);

b.Dispose();

}

}

}

Откроем окно свойств нашего компонента (например, с помощью меню Property по щелчку правой кнопки мыши). Как видно из рис.5.4, два наших новых свойства видны в списке, но, к сожалению, совершенно не информативны.

Рис.5.4. Пока новые свойства не информативны.

Добавить информацию о свойствах позволяют специальные атрибуты Category и Description.

Атрибут Category определяет название категории, к которой относится свойство. Если он не указан, то свойство считается относящимся к категории Misc. Для объединения свойств по категориям надо нажать самую левую кнопку в окне редактора свойств.

Атрибут Description позволяет задать некоторое строковое описание, которое будет давать представление о свойстве и его назначении.

Пример описания информации о свойствах показан в листинге 5.2, а результат – в окне свойств с информацией на рис.5.5.

 

Рис.5.5. Теперь свойство имеет текстовое описание и категорию "Gradient".

Листинг 5.2. Добавление информации о свойствах.

[Category("Gradient"), Description("Цвет начала заливки")]

public Color StartColor

{

get{ return startColor; }

set{ startColor = value; }

}

[Category("Gradient"), Description("Цвет завершения заливки")]

public Color EndColor

{

get{ return endColor; }

set{ endColor = value; }

}




Поделиться с друзьями:


Дата добавления: 2015-07-02; Просмотров: 346; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.008 сек.