Форум программистов, компьютерный форум, киберфорум
Наши страницы

C# Windows Forms

Войти
Регистрация
Восстановить пароль
 
Andreyip
11 / 11 / 3
Регистрация: 17.08.2014
Сообщений: 99
#1

Кнопка в стиле Windows XP - C#/.NET 4.x

18.05.2018, 11:38. Просмотров 72. Ответов 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
Я подобрал для вас темы с готовыми решениями и ответами на вопрос .NET 4.x Кнопка в стиле Windows XP (C#):

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

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

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

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

Во общем ситуация такая. Есть форма на форме кнопка. Кнопка запускает метод. После запуска метода форма умирае - C#
Во общем ситуация такая. Есть форма на форме кнопка. Кнопка запускает метод. После запуска метода форма умирает. Как решить? В голове...

Кнопки в стиле Ubuntu - C#
Собственно вопрос, можно ли сделать такое? Просто поставил тему на винду, кнопки там приятнее глазу. В гугле ничего не нашел.

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

Элемент управления в стиле toolbox - C#
люди добрые, кому-то из вас, наверное, приходилось когда-то писать подобные элементы управления, дайте пожалуйста ссылку, совет, идею и тд,...

Как сделать меню в стиле XP? - C#
Как енто сделать???

Оформление приложения в собственном стиле - C#
В win xp у меня висит оригинальная тема.. приложения смотрятся очень эффектно нежели в стандартной теме xp. Скажите пожалуйста как мне...

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


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

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

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