드래그 클래스
3131 단어 클래스
public static class DragDrop
{
private static bool IsDragging = false;
private static Point curPoint;
private const int MAX_ZINDEX = 99999;
private const double CURRENT_OPACITY = 0.5;
private static int lastZIndex;
private static double lastOpacity;
private static void sender_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
UIElement uiElement = sender as UIElement;
if (uiElement != null)
{
uiElement.CaptureMouse();
lastZIndex = (int)uiElement.GetValue(Canvas.ZIndexProperty);
uiElement.SetValue(Canvas.ZIndexProperty, MAX_ZINDEX);
lastOpacity = uiElement.Opacity;
uiElement.Opacity = CURRENT_OPACITY;
IsDragging = true;
curPoint = new Point(e.GetPosition(null).X, e.GetPosition(null).Y);
}
}
private static void sender_MouseMove(object sender, MouseEventArgs e)
{
if (!IsDragging)
{
return;
}
UIElement uiElement = sender as UIElement;
if (uiElement != null)
{
double currentLeft = (double)uiElement.GetValue(Canvas.LeftProperty);
double currentTop = (double)uiElement.GetValue(Canvas.TopProperty);
double newLeft = (double)currentLeft + e.GetPosition(null).X - curPoint.X;
double newTop = (double)currentTop + e.GetPosition(null).Y - curPoint.Y;
uiElement.SetValue(Canvas.LeftProperty, newLeft);
uiElement.SetValue(Canvas.TopProperty, newTop);
curPoint = new Point(e.GetPosition(null).X, e.GetPosition(null).Y);
}
}
private static void sender_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
{
UIElement uiElement = sender as UIElement;
if (uiElement != null)
{
uiElement.ReleaseMouseCapture();
IsDragging = false;
uiElement.SetValue(Canvas.ZIndexProperty, lastZIndex);
uiElement.Opacity = lastOpacity;
}
}
public static void Load(UIElement sender)
{
sender.MouseLeftButtonDown += new MouseButtonEventHandler(sender_MouseLeftButtonDown);
sender.MouseLeftButtonUp += new MouseButtonEventHandler(sender_MouseLeftButtonUp);
sender.MouseMove += new MouseEventHandler(sender_MouseMove);
}
public static void UnLoad(UIElement sender)
{
sender.MouseLeftButtonDown -= new MouseButtonEventHandler(sender_MouseLeftButtonDown);
sender.MouseLeftButtonUp -= new MouseButtonEventHandler(sender_MouseLeftButtonUp);
sender.MouseMove -= new MouseEventHandler(sender_MouseMove);
}
}
DragDrop :DragDrop.Load(LayoutRoot);
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Eclipse로 클래스 다이어그램 만들기java에서 클래스 다이어그램을 만듭니다. 할 일은 다음 세 가지입니다. GEF 설치 AmaterasUML 설치 클래스 다이어그램 만들기 Eclipse(4.0.7) 설치 Eclipse 도움말 > 신규 소프트웨어 설치...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.