Пользовательские кнопки в C # WinForms - PullRequest
1 голос
/ 17 февраля 2012

Я провел небольшое исследование, но, похоже, не могу найти то, что ищу.

Что я хочу сделать, так это сделать «пользовательскую» кнопку в форме окна.По сути, это всего лишь вопрос замены стандартного «серого» фона на пользовательское изображение.Настраиваемое изображение также будет использоваться при наведении курсора и нажатии на кнопку.

Это не просто вопрос изменения фонового изображения, так как изображение, которое я хочу использовать, имеет закругленные края с прозрачным фоном, и я хочупользовательское изображение для зависания / нажатия.Я хочу, чтобы все остальное в кнопке велось так же, как обычная кнопка.

Возможно ли это?

Ответы [ 2 ]

3 голосов
/ 17 февраля 2012

Решение, которое я нашел, состояло в том, чтобы установить FlatStyle кнопки на Flat и установить все границы на 0. У меня тогда была проблема с фокусом кнопки (этоотображается небольшая рамка).Чтобы решить эту проблему, я следовал этому уроку:

http://dotnetstep.blogspot.com/2009/06/remove-focus-rectangle-from-button.html

С этим все, что мне нужно было сделать, это добавить события к кнопке, чтобы изображение было изменено при выполнении определенного действия.на это:

    private void button1_MouseLeave(object sender, EventArgs e)
    {
        this.button1.Image = Properties.Resources._default;
    }

    private void button1_MouseEnter(object sender, EventArgs e)
    {
        this.button1.Image = Properties.Resources._hover;
    }        

    private void button1_MouseDown(object sender, MouseEventArgs e)
    {
        this.button1.Image = Properties.Resources._clicked;
    }

    private void button1_MouseUp(object sender, MouseEventArgs e)
    {
        this.button1.Image = Properties.Resources._default;
    }

Надеюсь, это поможет кому-то еще!

3 голосов
/ 17 февраля 2012
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...