현재 완전한 분석을 못하였음.
열이블로그(http://shine10ee.blog.me/)에서 소스를 구해서 Transform 및 마우스 이벤트 관련 공부를 한다.
전체적인 흐름부터,,,
XAML 코드상으로는 별거없다. 이미지를 띄워주고, 몇개는 border로 감쌌다.
기본 속성외에 이벤트연결 전혀 없다.
주로 볼건.. 비하인드 코드. ^^;;;
Transfrom 생성자(Element element, Window window)
{
Element.previewMouseDown += Element_PreviewMouseDown;
Element_PreviewMouseDown(object sender, MouseButtonEventArgs e)
{
if(마우스가 클릭된 상태를 확인하여)
{
Windows.PreviewMouseMove -= DragEvent;
if(IsTransformation)
{
Windows.PreviewMouseMove += TransformationEvent;
}
}
}
DragEvent(object sender, MouseEnventArgs e)
{
if(Button 상태 확인)
Point CurrentPoint = e.GetPosition(Window);
//현재의 윈도우 좌표를 반환 받는다.
Drag(CurrentPoint);
}
Drag(Point point)
{
//윈도우상에서 처음 좌표값의 역변환.
FirstCoordinate = Element.TransformToVisual(Window).visual.Transform(FirstPoint);
//객체를 기준으로 역변환 값을 윈도우상의 좌표값으로 변환
Point translate = Element.TransPoint(FirstCoordinate, Window);
Point Difference new Point(point.X - Translate.X , point.Y - Translate.Y);
//차이를 구해서
TranslateTrans.X += Difference.X;
TranslateTrans.Y += Difference.Y;
Element.RenderTransform = translateTrans;
}
'C#,WPF' 카테고리의 다른 글
[WPF] UI요소를 내맘대로 - Dispatcher, Transform (0) | 2012.02.28 |
---|---|
[WPF] Animation 예제(회전) (0) | 2012.02.25 |
[C#.NET] Transform 와 마우스 이벤트 (0) | 2012.02.25 |
[C#.NET] 델리게이트(Delegate) (0) | 2012.02.23 |
C# 기초다지기 간단정리(1/3) (0) | 2012.02.23 |