[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: Nionov  
Форум » Программирование » C#/C++/.NET » [C#] Закругленные формы на WFA
[C#] Закругленные формы на WFA
RainbowДата: Понедельник, 17.06.2019, 18:40 | Сообщение # 1

-= Повелитель кодеров =-
Сообщений: 146
Награды: 0
Репутация: 4279
Статус:
Стандартными средствами в WFA нельзя нарисовать форму, у которой были бы закругленные края. 

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

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, два раза кликаем по нему



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

this.Region = new Region( 
RoundedRect( 
new Rectangle(0, 0, this.Width, this.Height) 
, 10 

);

Вместо 10 впишите своё число - радиус округления формы.

 
Форум » Программирование » C#/C++/.NET » [C#] Закругленные формы на WFA
  • Страница 1 из 1
  • 1
Поиск: