Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# Windows Forms
Войти
Регистрация
Восстановить пароль
 
Andreyip
22 / 21 / 15
Регистрация: 17.08.2014
Сообщений: 137
1

Кнопка в стиле Windows XP

18.05.2018, 11:38. Просмотров 95. Ответов 0
Метки нет (Все метки)

Добрый день.
Помогите нарисовать кнопку в стиле win Xp (квадратная кнопка с тенью)
попробовал сделать кастомный контрол
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 public class CheckBoxEx : CheckBox
    {
        [DllImportAttribute("uxtheme.dll")]
        private static extern int SetWindowTheme(IntPtr hWnd, string appname, string idlist);
      public  CheckBoxEx():base()
        {
        
        }
        protected override void OnHandleCreated(EventArgs e)
        {
            SetWindowTheme(this.Handle, "", "");
            base.OnHandleCreated(e);
        }
}
но данный стиль работает только если
C#
1
FlatStyle = FlatStyle.System
и при этом так же не отрисовывается изображение на кнопке.
Как можно отрисовать кнопку в старом стиле и с иконкой на кнопке.
заранее спасибо.

Добавлено через 4 часа 57 минут
Добил.
использую TabControl с apperance Button+ скрытой формой табов.
Использую только кнопки.

Добавлено через 8 часов 53 минуты
В общем наклепал я свой класс для отрисовки кнопки. Отрабаотывает теперь как надо.
Пример наследник checkbox
Может кому то будет полезен.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
 public class CheckBoxEx : CheckBox
{
        
        protected override void OnMouseEnter(EventArgs eventargs)
        {
          
        }
        protected override void OnMouseLeave(EventArgs eventargs)
        {
           
        }
        protected override void OnPaint(PaintEventArgs e)
       {
                FlatAppearance.BorderSize = 0;
                base.OnPaint(e);
                if (Appearance == Appearance.Button)
                {
                    if (FlatStyle == FlatStyle.Flat)
                    {
                        var Shadowcolor = SystemColors.ButtonShadow;
                        var ShadowWidth = 2;
 
                        if (this.CheckState == CheckState.Unchecked)
                        {
                            ControlPaint.DrawBorder(e.Graphics, this.ClientRectangle,
                          Shadowcolor, ShadowWidth, ButtonBorderStyle.Outset,
                           Shadowcolor, ShadowWidth, ButtonBorderStyle.Outset,
                           Shadowcolor, ShadowWidth, ButtonBorderStyle.Outset,
                         Shadowcolor, ShadowWidth, ButtonBorderStyle.Outset);
 
                        }
                        else
                            ControlPaint.DrawBorder(e.Graphics, this.ClientRectangle,
                     Shadowcolor, ShadowWidth, ButtonBorderStyle.Inset,
                     Shadowcolor, ShadowWidth, ButtonBorderStyle.Inset,
                     Shadowcolor, ShadowWidth, ButtonBorderStyle.Inset,
                     Shadowcolor, ShadowWidth, ButtonBorderStyle.Inset);
                    }
                }
           }
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.05.2018, 11:38
Ответы с готовыми решениями:

Кнопки в стиле Windows 8
Доброго времени, Вопрос следующего характера. Решил попробовать сделать кнопки в приложении аля...

MenuStrip в стиле Windows 7
Не могу нигде найти как сделать панель меню как в системе. Я имею ввиду стиль отображения. Вообще...

Приложения в стиле Метро под Windows 7
Кто что знает, как добиться в VS C# 2010 эффекта окон стиля Метро, что то на подобие что сделали на...

Чтобы кнопка в любом Windows отображалась плоской как в Windows 8
Добрый день! Есть программа на Windows Forms. Подскажите, можно ли сделать так, чтобы под любой...

Во общем ситуация такая. Есть форма на форме кнопка. Кнопка запускает метод. После запуска метода форма умирае
Во общем ситуация такая. Есть форма на форме кнопка. Кнопка запускает метод. После запуска метода...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.05.2018, 11:38

Кнопки в стиле Ubuntu
Собственно вопрос, можно ли сделать такое? Просто поставил тему на винду, кнопки там приятнее...

Создание меню в стиле Paint
Пишу рисовалку, хочу организовать для нее меню как в пейнте. Подскажите как сделать вот такое меню?

Асинхронные методы в стиле Erlang
Уже не в первый раз встречаюсь с задачей и не знаю, как её реализовать согласно задумке. Задача...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru