본문 바로가기

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

WPF & C# - 도형 드래그 이동 ( Element / Move / DragMove / Button / Marjin )

728x90
반응형
 WPF & C# - 도형 드래그 이동 ( Element / Move / DragMove / Button / Marjin )

 

dragMove.zip
0.64MB

 

 

 

관련글

 

2018/05/02 - [Programing (프로그래밍)/WPF & C# (C Sharp)] - WPF & C# - 도형 드래그 리사이즈 ( Element / 변형 / DragMove / resize / button )

 

2017/10/23 - [Programing (프로그래밍)/WPF & C# (C Sharp)] - WPF & C# (C Sharp) - 마우스 드래그로 윈도우 창 이동하기 ( window / drag move 드래그 무브 )

 

 

 

도형 드래그 이동

 

 
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
bool dragMove;   // drag 시작 여부
Point ptStartMove;   // 마우스 시작 위치
Thickness mgnStartMove;   // 도형 시작 Margin 값
 
private void Ellipse_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
    ptStartMove = e.GetPosition(win1);
    mgnStartMove = Ellipse1.Margin;
    dragMove = true;
}
 
private void Ellipse_MouseMove(object sender, MouseEventArgs e)
{
    if (!dragMove) return;
 
    Point pt = e.GetPosition(win1);
 
    double moveX = (pt.X - ptStartMove.X);
    double moveY = (pt.Y - ptStartMove.Y);
    Ellipse1.Margin = new Thickness(mgnStartMove.Left + moveX, mgnStartMove.Top + moveY, mgnStartMove.Right, mgnStartMove.Bottom);
}
 
private void Ellipse_MouseLeave(object sender, MouseButtonEventArgs e)
{
    dragMove = false;
}
 
cs
 
좀 더 자연스럽게 처리하려면 MouseLeave 를 해당 도형이 아닌 배경에 두는 것이 좋다.
 

 

 

728x90
반응형