Private Point startPoint;
private void Window_PreviewMouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
startPoint = e.GetPosition(null);
}
private void Window_MouseMove(object sender, MouseEventArgs e)
{
if (e.LeftButton == MouseButtonState.Pressed)
{
Point relative = e.GetPosition(null);
Point AbsolutePos = new Point(relative.X + this.Left, relative.Y + this.Top);
this.Top = AbsolutePos.Y - startPoint.Y;
this.Left = AbsolutePos.X - startPoint.X;
}
}
Das für das Ziehen meines Fensters funktioniert, aber wie es gesagt wurde, wenn ich die Maus schnell bewegen, würde es bekommen von Fenster und hör auf, das Ereignis zu erhöhen. Ohne zu erwähnen, ist das Ziehen überhaupt nicht glatt. Weiß jemand, wie man es richtig macht, schönes und sanftes Ziehen, ohne es zu verlieren, wenn es zu schnell gezogen wird ??? Poste ein einfaches Beispiel, wenn möglich, abgesehen von einem ganzen Tutorial, das Anfänger wie mich im Code verlieren würde. Vielen Dank!
Vielleicht fehlt mir etwas einfaches, dass ein erfahrener WPF-Entwickler würde wissen, aber wie ist das wiederverwendbar? Wenn ich das Steuerelement in einem anderen XAML-Kontext einfüge (z. B. wenn ich versuche, es in einem Fenster wiederzuverwenden), überschreibt jeder von mir angegebene Inhalt das Canvas-Element, an das der Daumen gebunden ist. – Vassi
Ich habe diese Lösung ausprobiert. Funktioniert super! Danke Jacob. Ich habe nur ein Problem: Ich habe eine Ansicht innerhalb dieses Daumens und kann die gesamte Ansicht fein ziehen. Wenn diese Ansicht jedoch über eine Bildlaufleiste verfügt, verursacht das Ziehen der Bildlaufleiste das Ziehen des Daumens und damit der gesamten Ansicht. Gibt es eine Möglichkeit, dies zu vermeiden? – Shankar