Загрузка...

Рисуем кнопку с округленными краями Win Forms C#

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

Загрузка...
  1. Pavel6025
    Pavel6025 2 апр 2017 90 15 авг 2016
    Сглаживание круглого Picturebox - C#
    Код

    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 апр 2017 Изменено
  2. SpPro
    SpPro 8 апр 2017 71 10 янв 2017

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

    Код

    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);
    }
     
    8 апр 2017 Изменено
  3. Yotic
    Yotic 27 янв 2022 Ебашу на C# всё что захотите(Разноцветное) 43 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 ); }
    }
     
    27 янв 2022 Изменено
  4. SparkXtrm
    SparkXtrm 28 июл 2022 Заблокирован(а) 304 1 мар 2022
    интересно, но IsHighlighted не существует в текущем контексте, но я тут за дизайном кнопок так что годно:finger_up:
     
  5. Sariel
    RaysMorgan почему белая тема бро?
     
    1. Посмотреть предыдущие комментарии (4)
    2. Karasu_san
      Sariel, такой же вопрос, черная работает же лучше
    3. SparkXtrm
      KitsuneDev, ну за то ночью твои глаза будут гореть:)
  6. DESPERADO
    DESPERADO 6 авг 2022 Заблокирован(а) 2797 28 фев 2021
    Нахер вы эту древность подняли)
     
  7. Schultz_Coder88
    Schultz_Coder88 6 авг 2022 Заблокирован(а) 14 3 апр 2022
    RaysMorgan, помоему проще на css.
     
  8. saltfind
    saltfind 6 авг 2022 266 10 июн 2021
    полезно
     
  9. Apathy
    Что все вдруг вспомнили тему пяти летней давности :emm:
     
  10. G0odDay
    G0odDay 7 авг 2022 215 14 окт 2018
    актуально, спасибо!
     
  11. виноградик
    виноградик 7 авг 2022 Заблокирован(а) 715 21 май 2022
    Будет обзор на Ютуб канале, голосом робота?
     
  12. Quasarov
    Quasarov 4 апр 2025 Заблокирован(а) 2 17 авг 2024
    Когда новые гайды?
     
Top