red-cat-fat
@red-cat-fat
Делаю игры

Как переопределить метод отрисовки Button?

Собственно необходимо переопределить метод отрисовки компонента Button при на ведении на него курсора мыши. А точнее просто отрисовать на нём дополнительную рамку заданного цвета. Каким образом можно это сделать?
  • Вопрос задан
  • 300 просмотров
Решения вопроса 1
@slipperex
Программист C#
Если речь о WinForms - то можно так:
private bool _b;

        public Form1()
        {
            InitializeComponent();

            button1.MouseEnter += (sender, args) => _b = true;
            button1.MouseLeave += (sender, args) => _b = false;

            button1.Paint += (sender, args) =>
                {
                    if (_b)
                        args.Graphics.DrawRectangle(new Pen(Color.Red), 0, 0, ((Button)sender).Width - 1,
                                                    ((Button)sender).Height - 1);
                };

        }
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Если речь о wpf, придется мудрить с шаблоном или сверху налепить прозрачную рамку, не помню только , будет ли ловиться ismouseover при ishittestvisble=false. Просто в стиле вроде не получится
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы