Приветствую всех, конечно мало кто уже использует winform однако, студенты и начинающие обычно начинают именно с него. И классическая форма кнопок печалит. Рассмотрим пример, для этого мы создадим кнопку на форме и используем код ниже:
1 2 |
//добавляем необходимое простанство имен: using System.Drawing.Drawing2D; |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
void OvalForm(Button btn) { GraphicsPath gp = new GraphicsPath(); Graphics g = CreateGraphics(); //Создаем новый прямоуголник с размерами кнопки Rectangle rect = btn.ClientRectangle; //уменьшаем размеры прямоуголника rect.Inflate(-3, -3); //создаем эллипс gp.AddEllipse(rect); btn.Region = new Region(gp); //рисуем рамку для овальной кнопки g.DrawEllipse(new Pen(Color.Black, 1), btn.Left + 1, btn.Top + 1, btn.Width - 3, btn.Height - 3); //высвобождаем память g.Dispose(); } |
Теперь создадим обработчик события для кнопки и поместим в него следующий код:
1 2 3 4 |
private void button1_Click(object sender, EventArgs e) { OvalForm(button1); } |
Если нажать на кнопку мы увидим овальную форму, поместив в него изображение она будет выглядеть намного лучше 🙂