Загрузка...

Создание формы с закругленными углами Win Forms C#

Тема в разделе C# создана пользователем RaysMorgan 1 фев 2017. 6118 просмотров

Загрузка...
  1. RaysMorgan
    RaysMorgan Автор темы 1 фев 2017 https://lolz.live/support-tickets/open 51 794 7 мар 2013
    Стандартными средствами в WFA нельзя нарисовать форму, у которой были бы закругленные края.

    На помощь приходит класс GraphicsPath
    Вставляем метод в свой класс или можете вынести в отдельный класс для удобства

    C#

    public static GraphicsPath RoundedRect(Rectangle baseRect, int radius)
    {
    var diameter = radius * 2;
    var sz = new Size(diameter, diameter);
    var arc = new Rectangle(baseRect.Location, sz);
    var path = new GraphicsPath();

    // Верхний левый угол
    path.AddArc(arc, 180, 90);

    // Верхний правый угол
    arc.X = baseRect.Right - diameter;
    path.AddArc(arc, 270, 90);

    // Нижний правый угол
    arc.Y = baseRect.Bottom - diameter;
    path.AddArc(arc, 0, 90);

    // Нижний левый угол
    arc.X = baseRect.Left;
    path.AddArc(arc, 90, 90);

    path.CloseFigure();
    return path;
    }
    Переходим к событиям формы, ищем событие Load, два раза кликаем по нему
    [IMG]

    Вставляем следующий код:
    C#

    this.Region = new Region(
    RoundedRect(
    new Rectangle(0, 0, this.Width, this.Height)
    , 10
    )
    );
    Вместо 10 впишите своё число - радиус округления формы.

    [IMG]
     
  2. Ignes
    Ignes 1 фев 2017 xD 284 1 ноя 2016
    Кончено годно, еще б научиться что-то туда вставить...
     
  3. Pavel6025
    Pavel6025 2 апр 2017 90 15 авг 2016
    Спасибо, разобрался)
     
  4. Chanpanskoe
    Chanpanskoe 19 ноя 2017 Заблокирован(а) 8 18 ноя 2017
    Чем вас не устраивает обычная форма?
     
  5. RaysMorgan
    RaysMorgan Автор темы 19 ноя 2017 https://lolz.live/support-tickets/open 51 794 7 мар 2013
    Chanpanskoe, закругленную хочется
     
  6. Sai_211993
    Sai_211993 19 ноя 2017 1 19 ноя 2017
    В чем ошибка?
    [IMG]
     
  7. RaysMorgan
    RaysMorgan Автор темы 19 ноя 2017 https://lolz.live/support-tickets/open 51 794 7 мар 2013
    Sai_211993, Sai_211993, надо написать вверху
    Код
    using System.Drawing.Drawing2D;
     
  8. Sai_211993
    Sai_211993 19 ноя 2017 1 19 ноя 2017
    Получилось, спасибо.
    [IMG]
     
  9. mbr_inactive
    Юзефул, спасибо
     
Top