본문 바로가기

Programing (프로그래밍)/WPF & C# (C Sharp)

WPF & C# - 도형 드래그 리사이즈 ( Element / 변형 / DragMove / resize / button )

728x90
반응형


 WPF & C# - 도형 드래그 리사이즈 ( Element / 변형 / DragMove / resize / button )



dragResize.zip





관련글



도형 드래그 이동하기



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
반응형