Загрузка...

Draw a Button with Rounded Edges Winforms C#

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

  1. Pavel6025
    Pavel6025 Apr 2, 2017 90 Aug 15, 2016
    Сглаживание круглого Picturebox - C#
    Code

    private void Form1_Load(object sender, EventArgs e)
    {
    System.Drawing.Drawing2D.GraphicsPath path = new System.Drawing.Drawing2D.GraphicsPath();
    path.AddEllipse(0, 0, 100, 100);
    Region rgn = new Region(path);
    pictureBox2.Region = rgn;
    pictureBox2.BackColor = System.Drawing.SystemColors.GrayText;
    }
    [/[B]code[/B]]
    Как сгладить?[/SIZE][/B]
     
  2. SpPro
    SpPro Apr 8, 2017 71 Jan 10, 2017

    Я погуглил и внятного решения не нашел. Но если ваш PictureBox будет лежать непосредственно на форме и под ним не будет никаких контролов, то можете немного считерить и сделать так:

    Code

    private void Form1_Load(object sender, EventArgs e)
    {
    System.Drawing.Drawing2D.GraphicsPath path = new System.Drawing.Drawing2D.GraphicsPath();
    path.AddEllipse(0,0, pictureBox1.Width, pictureBox1.Height);
    Region rgn = new Region(path);
    pictureBox1.Region = rgn;
    pictureBox1.BackColor = System.Drawing.SystemColors.GrayText;

    Graphics gr = Graphics.FromImage(pictureBox1.Image);
    gr.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
    gr.DrawEllipse(new Pen(this.BackColor, 2), 0, 0, pictureBox1.Width, pictureBox1.Height);
    }
     
  3. Yotic
    Yotic Jan 27, 2022 Ебашу на C# всё что захотите(Разноцветное) 43 Jan 13, 2021
    Вот класс, которые подходит под любые элементы, нужно просто закинуть котрол и указать нужные углы, класс делал я
    CSHARP
    public static void SetRoundedShape(Control control, int radius, bool topRight, bool topLeft, bool bottomLeft, bool bottomRight)
    {
    try
    {
    GraphicsPath path = new GraphicsPath();
    if (topRight)
    {
    path.AddLine(radius, 0, control.Width - radius, 0);
    path.AddArc(control.Width - radius, 0, radius, radius, 270, 90);
    }
    else
    path.AddLine(0, 0, control.Width, 0);
    if (bottomRight)
    {
    path.AddLine(control.Width, radius, control.Width, control.Height - radius);
    path.AddArc(control.Width - radius, control.Height - radius, radius, radius, 0, 90);
    }
    else
    path.AddLine(control.Width, 0, control.Width, control.Height);
    if (bottomLeft)
    {
    path.AddLine(control.Width - radius, control.Height, radius, control.Height);
    path.AddArc(0, control.Height - radius, radius, radius, 90, 90);
    }
    else
    path.AddLine(control.Width, control.Height, 0, control.Height);
    if (topLeft)
    {
    path.AddLine(0, control.Height - radius, 0, radius);
    path.AddArc(0, 0, radius, radius, 180, 90);
    }
    else
    path.AddLine(0, control.Height, 0, 0);
    control.Region = new Region(path);
    Console.WriteLine("Элемент " + control.Name + " был прорисован.");
    }
    catch (Exception e) { Console.WriteLine("При прорисовке элемента: " + control.Name + " Произошла ошибка: " + e ); }
    }
     
  4. SparkXtrm
    SparkXtrm Jul 28, 2022 Banned 304 Mar 1, 2022
    интересно, но IsHighlighted не существует в текущем контексте, но я тут за дизайном кнопок так что годно:finger_up:
     
  5. Sariel
    RaysMorgan почему белая тема бро?
     
    1. View previous comments (4)
    2. Karasu_san
      Sariel, такой же вопрос, черная работает же лучше
    3. SparkXtrm
      KitsuneDev, ну за то ночью твои глаза будут гореть:)
  6. DESPERADO
    DESPERADO Aug 6, 2022 Banned 2797 Feb 28, 2021
    Нахер вы эту древность подняли)
     
  7. Schultz_Coder88
    Schultz_Coder88 Aug 6, 2022 Banned 14 Apr 3, 2022
    RaysMorgan, помоему проще на css.
     
  8. saltfind
    saltfind Aug 6, 2022 266 Jun 10, 2021
    полезно
     
  9. Apathy
    Apathy Aug 7, 2022 WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
    Что все вдруг вспомнили тему пяти летней давности :emm:
     
    1. ilovecactus111
      Apathy, форум багнулся
    2. 5050
      Apathy, дурачок апнул
  10. G0odDay
    G0odDay Aug 7, 2022 215 Oct 14, 2018
    актуально, спасибо!
     
  11. виноградик
    виноградик Aug 7, 2022 Banned 713 May 21, 2022
    Будет обзор на Ютуб канале, голосом робота?
     
  12. Quasarov
    Quasarov Apr 4, 2025 Banned 2 Aug 17, 2024
    Когда новые гайды?
     
Loading...
Top