이번에는 Shape 클래스를 이용하여 타원, 사각형, 다각형, 선, 폴리라인을 그려볼 것이다!
Shape 클래스는 라인, 폴리라인, 다각형, 타원, 직사각형, 패치에 상속되어 도형을 그릴 수 있도록 해준다.
패치 일부분을 정의 하기 위해 Geometry 클래스가 사용 되기 때문에 그림상에 포함되어있다.
그림을 그릴 때 사용하는 두 가지의 큰 클래스는 Shape와 Geometry 두 가지이다.
Shape : 브러쉬가 연결되어 있어 화면으로 표시 됨
Geometry : UI 속성에 정보를 제공하는 데 도움이 되지 않는 경우 단순히 공간 영역만 정의, 화면 표시 안 됨
아무튼 이런거 아무도 궁금해 하지 않을 거 안다!
나도 안 궁금하기 때문!
도형 그리기
도형을 선언 하는 것은 아주 간단하다.
기본 틀은 간단한 형태이다.
var 변수명 = new 도형이름 영어로();
간단한 형태이다.
var ellipse1 = new Ellipse(); // 타원
var rectangle1 = new Rectangle(); // 사각형
var polygon1 = new Polygon(); // 다각형
var line1 = new Line(); // 선
var polyline1 = new Polyline(); // 폴리라인
도형 속성 정하기
1. 도형 색깔 채우기 및 외곽선
// 도형 채우기 및 선 그리기
도형.Fill = new SolidColorBrush(Colors 속성); // 채우기
도형.Stroke = new SolidColorBrush(Colors 속성); // 선 색
도형.StrokeThickness = 3; // 선 두께
Colors 속성이란!?
Colors.red : 이미 정의된 속성을 불러 오기
Colors..FromArgb(byte Alpha, byte Red, byte Green, byre Blue) :
투명도와 RGB값을 0~255부터의 값을 통해 설정 가능하다.
2. 둥근 사각형 만들기
사각형이름.RadiusX = 50;
사각형이름.RadiusY = 10;
3.크기 지정
도형.Width = 200;
도형.Height = 100;
라인 그리기
1. 기본적인 라인 그리기
var line1 = new Line();
line1.Stroke = new SolidColorBrush(Colors.Red);
line1.X1 = 100; // x포인트 1
line1.Y1 = 300; // y포인트 1
line1.X2 = 400; // x포인트 2
ilne2.Y2 = 200; // y포인트 2
2. 포인트 찍기/ 다각형, 폴리라인 그리기
다각형 / 폴리라인 / 베지어 곡선을 그리기 위해서는 좌표 점을 찍을 필요가 있다.
Add를 이용해 좌표점을 추가하고,
마지막에 좌표를 적용할 도형의 Points에 대입해주면 된다.
var points = new PointCollection();
points.Add(new Point(10, 200));
points.Add(new Point(60, 140));
points.Add(new Point(130, 140));
points.Add(new Point(180, 200));
다각형/폴리라인.Points = points;
도형 출력하기
도형을 정의하고 속성을 지정했다면 출력을 해야지!
1. Xaml에 <Grid>태그 이름 짓기
<Grid x:Name="layoutRoot"> </Grid>
2. 출력하기
layoutRoot.Children.Add(각 도형, 라인의 변수명);
난 트러블 메이커~
예에아
다음에는 아마 베지어 곡선을 힘이 남아돈다면 정리할 것이다.
미래의 나 녀석 이 글보다
https://docs.microsoft.com/ko-kr/windows/uwp/design/controls-and-patterns/shapes
이게 더 도움 될 듯 싶다.
'부장님의 이야기' 카테고리의 다른 글
[Windows API] 윈도우 프로그래밍 개요 (0) | 2020.07.14 |
---|---|
[WPF-Find Different] : #3 이미지 업로드 및 그리드 (0) | 2020.05.16 |
[WPF-Find Different] : #2 마우스클릭 이벤트 (0) | 2020.05.14 |
[Find Different] : #1 타이머 만들기 (0) | 2020.05.11 |
[WPF] Material Design 적용 (1) | 2020.05.11 |