Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Градиентные кнопки? 
:(
    Опции темы
WaReZMEN
Дата 29.1.2009, 11:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 683
Регистрация: 9.6.2006
Где: Россия, Санкт-Пет ербург

Репутация: нет
Всего: 3



Здравствуйте! Интересует как сделать градиентную кнопку на C# ? smile 
PM MAIL ICQ   Вверх
QryStaL
Дата 29.1.2009, 11:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Intellectual feast
**


Профиль
Группа: Участник
Сообщений: 914
Регистрация: 30.11.2005

Репутация: 14
Всего: 32



Windows Forms? WPF ?


--------------------
I don't need a reason being who I am...
PM MAIL ICQ   Вверх
VSyntoT
Дата 29.1.2009, 12:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 18
Регистрация: 3.9.2007

Репутация: нет
Всего: нет



Создаешь проект типа Windows form control library и в UserControl1.cs в головном namespace'се пишешь следующее...



Код

public partial class GradientButton : Button
    {
        private event EventHandler onGradientChange;

        [Category("Gradient"), Description("Вызывается при изменении свойств заливки")]
        public event EventHandler OnGradientChange
        {
            add
            {
                onGradientChange += value;
            }
            remove
            {
                onGradientChange -= value;
            }
        }

        //перерисовать себя при изменении свойств
        private void OnChangeProperties()
        {
            Invalidate();
            if (onGradientChange != null)
            {
                onGradientChange(this, new EventArgs());
            }
        }

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

        //Цвет начала заливки
        [Category("Gradient"),Description("Цвет начала заливки"),
        DefaultValue( typeof(Color), "LightGreen" ) ]
        public Color StartColor
        {
            get { return startColor; }
            set { startColor = value; OnChangeProperties(); }
        }


        //цвет завершения заливки
        [Category("Gradient"), Description("Цвет завершения заливки"),
        DefaultValue(typeof(Color), "DarkBlue")]
        public Color EndColor
        {
            get { return endColor; }
            set { endColor = value; OnChangeProperties(); }
        }

        //Метод OnPaint
        protected override void OnPaint(PaintEventArgs pe)
        {
            //Вызываем базовый OnPaint
            base.OnPaint(pe);

            //заливаем
            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();
        }

        public GradientButton()
        {
            InitializeComponent();
        }




M
THandle
Модератор: Используйте подсветку кода!!!


Это сообщение отредактировал(а) THandle - 29.1.2009, 16:31
PM MAIL   Вверх
WaReZMEN
Дата 29.1.2009, 13:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 683
Регистрация: 9.6.2006
Где: Россия, Санкт-Пет ербург

Репутация: нет
Всего: 3



Windows Mobile
PM MAIL ICQ   Вверх
WaReZMEN
Дата 5.2.2009, 11:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 683
Регистрация: 9.6.2006
Где: Россия, Санкт-Пет ербург

Репутация: нет
Всего: 3



Вот нашел кому интересно смотрите...
http://msdn.microsoft.com/en-us/library/ms229655.aspx
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0441 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.