본문 바로가기
개발 이야기/C# 이야기

C# Canvas 위에 도형 원 그리기

by 런던살자 2020. 12. 23.

안녕하세요 마블랑입니다.

 

이번 포스팅은 간단하게 C# 프로세스에서 Canvas 위에 도형을 그려보려고 합니다.

 

C#이라고 해도 WPF 에서 실습을 했기 때문에 윈폼에서는 동작할지 잘 모르겠군요

 

윈폼에서 코드가 실행이 안된다고 하면 다른 윈폼 소스를 찾아봐야할거 같습니다.

 

도형 그리기는 윈도우 프로세스에서 기본적인 것이라 방법이 달라도 도형그리는 법은 있으니까요

 

 

C# 에서도 도형을 그리는 법이 다양한데요 

 

지금은 도형객체를 생성한 뒤에 캔버스에 추가하는 방법으로 진행해보려고 합니다.

 

먼저 사각형을 추가하는 법에 대해서 알아보겠습니다.

 

Rectangle rect = new Rectangle();	//사각형 객체 생성

rect.Width = 150;		//사각형 넓이 지정
rect.Height = 150;		//사각형 높이 지정
rect.Stroke = new SolidColorBrush(Color.FromRgb(0, 150, 0));	// 테두리 색상지정 
rect.StrokeThickness =4;	//테두리 두께 지정
rect.Fill = new SolidColorBrush(Color.FromRgb(255, 255, 100));	//사각형 색상지정

DrawCanvas.Children.Add(rect);	//캔버스에 사각형 객체를 추가한다.

Canvas.SetLeft(rect, 200);	//캔버스내의 사각형위치를 조정한다.
Canvas.SetTop(rect, 200);

 

Rectangle 클래스로 사각형 객체를 생성한 뒤에 캔버스에 추가해주었습니다.

 

사각형 객체에는 위치가 나오지 않아 캔버스에 추가한뒤에 캔버스에서 위치를 바꿔주었습니다~

 

 

다음은 원을 한번 그려보도록 하겠습니다.

Ellipse ell = new Ellipse();

ell.Width = 100;
ell.Height = 100;
ell.Fill = new SolidColorBrush(Color.FromRgb(0, 0, 100));

DrawCanvas.Children.Add(ell);

Canvas.SetLeft(ell, 100);
Canvas.SetTop(ell, 200);

사각형을 그릴때와 동일한 방법인데요 이번 원에는 테두리를 지정해주지 않았습니다.

 

테두리는 설정을 하지 않으면 자동으로 사라지니 참고하시기 바랍니다.

 

 

이렇게 도형을 추가하는 원리로 버튼이나 텍스트박스 같은 다른 컨트롤들도 동적으로 캔버스에 추가할수 있습니다~

 

버튼같은경우네는 클릭이벤트를 따로 추가를 해주긴 해야합니다.

 

 

이상 마블랑이었습니다.

 

읽어주어서 고맙습니다.

댓글