Загрузка...

Creating a Form with Rounded Corners Win Forms C#

Thread in C# created by RaysMorgan Feb 1, 2017. 6134 views

  1. RaysMorgan
    RaysMorgan Topic starter Feb 1, 2017 Че скажете 53,985 Mar 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 Feb 1, 2017 xD 283 Nov 1, 2016
    Кончено годно, еще б научиться что-то туда вставить...
     
  3. Pavel6025
    Pavel6025 Apr 2, 2017 90 Aug 15, 2016
    Спасибо, разобрался)
     
  4. Chanpanskoe
    Chanpanskoe Nov 19, 2017 Banned 8 Nov 18, 2017
    Чем вас не устраивает обычная форма?
     
  5. RaysMorgan
    RaysMorgan Topic starter Nov 19, 2017 Че скажете 53,985 Mar 7, 2013
    Chanpanskoe, закругленную хочется
     
  6. Sai_211993
    Sai_211993 Nov 19, 2017 1 Nov 19, 2017
    В чем ошибка?
    [IMG]
     
  7. RaysMorgan
    RaysMorgan Topic starter Nov 19, 2017 Че скажете 53,985 Mar 7, 2013
    Sai_211993, Sai_211993, надо написать вверху
    Code
    using System.Drawing.Drawing2D;
     
  8. Sai_211993
    Sai_211993 Nov 19, 2017 1 Nov 19, 2017
    Получилось, спасибо.
    [IMG]
     
  9. mbr_inactive
    Юзефул, спасибо
     
Loading...
Top