728x90
반응형
WPF & C# - 도형 드래그 리사이즈 ( Element / 변형 / DragMove / resize / button ) |
도형 드래그 이동하기
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 | double preWidth; // 도형 가로 double preHeight; // 도형 세로 bool drag; // drag 시작 여부 Point ptStart; // 마우스 시작 위치 // 마우스 왼쪽버튼 Down 시 시작위치 및 도형 사이즈 저장 & 드래그 시작 private void Ellipse_MouseLeftButtonDown(object sender, MouseButtonEventArgs e) { // 마우스 시작 위치 저장 ptStart = e.GetPosition(win1); // 도형 가로,세로 저장 preWidth = Ellipse.Width; preHeight = Ellipse.Height; // 드래그 시작 drag = true; } // 마우스 이동 시 도형 사이즈 변경 private void Ellipse_MouseMove(object sender, MouseEventArgs e) { if (!drag) return; // drag 시작 아니면 return // 마우스 현재위치 저장 Point pt = e.GetPosition(win1); // 도형사이즈에서 마우스 움직인 거리 합산 적용 Ellipse.Width = preWidth + (pt.X - ptStart.X); Ellipse.Height = preHeight + (pt.Y - ptStart.Y); } // 마우스 업 드래그 취소 private void Ellipse_MouseUp(object sender, MouseButtonEventArgs e) { // 드래그 취소 drag = false; } private void Ellipse_MouseLeave(object sender, MouseButtonEventArgs e) { // 드래그 취소 drag = false; } | cs |
기본적인 개념은 이렇다
1. 마우스 Down 시 객체를 drag 하여 이동
2. 마우스 위치 변화값을 객체 사이즈에 적용
3. 마우스 Up 시 객체 drag 해제
728x90
반응형
'Programing (프로그래밍) > WPF & C# (C Sharp)' 카테고리의 다른 글
WPF & C# - 배경 색상 및 이미지 변경하기 ( Background / color / bitmapimage / SolidColorBrush / BrushConverter / ColorConverter ) (0) | 2018.05.03 |
---|---|
WPF & C# - 객체(버튼) 생성하기 ( 버튼 생성 / += / 이벤트 / 핸들러 button / EventHandler ) (0) | 2018.05.03 |
WPF & C# - 문자열 숫자형식 포맷 ( 데이타 타입 / 숫자형식 / 날짜형식 / 이스케이스 시퀀스 / 연산자 ) (0) | 2018.05.03 |
WPF & C# - 도형 드래그 이동 ( Element / Move / DragMove / Button / Marjin ) (4) | 2018.05.02 |
WPF & C# - Grid 열과 행으로 나누기 ( RowDefinitions / ColumnDefinitions ) (0) | 2018.05.01 |
WPF & C# - 네이밍 규칙 (0) | 2018.05.01 |
WPF & C# - OpenFileDialog (다이어로그) (0) | 2018.05.01 |
WPF & C# - 하위디렉토리 및 파일 삭제하기 ( 하위폴더 / DiretoryInfo ) (0) | 2018.05.01 |