Welcome to my World Вторник, 26.11.2024, 07:01
Любое использование материалов, их подборки, дизайна и элементов дизайна может осуществляться лишь с разрешения автора (правообладателя) и только при наличии ссылки на ресурс
Приветствую Вас Гость | RSS


Меню сайта

Категории раздела
Работа с контролами [3]
(Button)
Forms [1]
Работа с формами
Сеть [1]
Работа с сетью
Compact Framework [1]
Compact Framework
Внешние устройства [1]
Работа с внешними устройствами

Главная » Статьи » CSharp » Работа с контролами

Создание контрола ExtColorButton
Создание контрола ExtColorButton.
 
 
 
В этом примере модернизирован пример из предыдущей статьи.
  
Чтобы кнопка приняла такой вид нужно в функциях отрисовки кнопки поменять способ отрисовки:
 
protected void PaintNormalState(Graphics g)
{
   int X = this.Width - 1;
   int Y = this.Height - 1;
   int radius = Y;
 
   GraphicsPath path = new GraphicsPath();
   path.AddArc(X - radius, 0, radius, radius, 270, 90);
   path.AddArc(X - radius, Y - radius, radius, radius,0,90);
   path.AddArc(0, Y - radius , radius, radius, 90, 90);
   path.AddArc(0, 0, radius, radius, 180, 90);
   path.CloseFigure();
 
   Rectangle newRect = new Rectangle(ClientRectangle.X + 1,
                                     ClientRectangle.Y + 1,
                                     ClientRectangle.Width - 2,
                                     ClientRectangle.Height - 2);
 
   brush = new LinearGradientBrush(newRect,
                                   m_color1,
                                   m_color2,
                                   mode);
 
   g.SmoothingMode = SmoothingMode.AntiAlias;
   g.CompositingQuality = CompositingQuality.GammaCorrected;
   g.FillPath(brush, path);
   g.DrawPath(new Pen(m_color2, 1), path);
 
   path.Dispose();
   brush.Dispose();
}
 
protected void PaintHoverState(Graphics g)
{
 
   int X = this.Width - 1;
   int Y = this.Height - 1;
   int radius = Y;
 
   GraphicsPath path = new GraphicsPath();
   path.AddArc(X - radius, 0, radius, radius, 270, 90);
   path.AddArc(X - radius, Y - radius, radius, radius,0,90);
   path.AddArc(0, Y - radius , radius, radius, 90, 90);
   path.AddArc(0, 0, radius, radius, 180, 90);
   path.CloseFigure();
 
   Rectangle newRect = new Rectangle(ClientRectangle.X + 1,
                                     ClientRectangle.Y + 1,
                                     ClientRectangle.Width - 2,
                                     ClientRectangle.Height - 2);
 
   brush = new LinearGradientBrush(newRect,
                                   m_color2,
                                   m_color1,
                                   mode);
 
   g.SmoothingMode = SmoothingMode.AntiAlias;
   g.CompositingQuality = CompositingQuality.GammaCorrected;
   g.FillPath(brush, path);
   g.DrawPath(new Pen(m_color2, 1), path);
 
   path.Dispose();
   brush.Dispose();
}
 
protected void PaintClickedState(Graphics g)
{
   int X = this.Width - 1;
   int Y = this.Height - 1;
   int radius = Y;
 
   GraphicsPath path = new GraphicsPath();
   path.AddArc(X - radius, 0, radius, radius, 270, 90);
   path.AddArc(X - radius, Y - radius, radius, radius,0,90);
   path.AddArc(0, Y - radius , radius, radius, 90, 90);
   path.AddArc(0, 0, radius, radius, 180, 90);
   path.CloseFigure();
 
   Rectangle newRect = new Rectangle(ClientRectangle.X + 1,
                                     ClientRectangle.Y + 1,
                                     ClientRectangle.Width - 2,
                                     ClientRectangle.Height - 2);
 
   brush = new LinearGradientBrush(newRect,
                                   m_color2,
                                   m_color2,
                                   mode);
 
   g.SmoothingMode = SmoothingMode.AntiAlias;
   g.CompositingQuality = CompositingQuality.GammaCorrected;
   g.FillPath(brush, path);
   g.DrawPath(new Pen(m_color2, 1), path);
 
   path.Dispose();
   brush.Dispose();
}
 
Категория: Работа с контролами | Добавил: dev (20.11.2007) | Автор: Седых Илья Николаевич E W
Просмотров: 2659 | Рейтинг: 0.0/0
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Форма входа

Поиск

Наш опрос
Оцените мой сайт
Всего ответов: 91

Друзья сайта
alsproject.ru

Статистика

Copyright MyCorp © 2024Сайт управляется системой uCoz