У меня есть следующий код
открытый частичный класс MainPage: UserControl
{
public MainPage ()
{
InitializeComponent ();
}
public Point LastDragPosition { get; set; }
private bool isDragging;
private void rec_MouseMove(object sender, MouseEventArgs e)
{
if(!isDragging)
{
return;
}
var position = e.GetPosition(rec as UIElement);
var newPosition = new Point(
Canvas.GetLeft(rec) + position.X - LastDragPosition.X,
Canvas.GetTop(rec) + position.Y - LastDragPosition.Y);
Canvas.SetLeft(rec, newPosition.X);
Canvas.SetTop(rec, newPosition.Y);
LastDragPosition = e.GetPosition(rec as UIElement);
}
private void rec_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
isDragging = true;
LastDragPosition = e.GetPosition(sender as UIElement);
rec.CaptureMouse();
}
}
Эта проблема заключается в том, что прямоугольник следует за мышью, если левая кнопка мыши нажата, но я бы хотел, чтобы прямоугольник двигался, даже если левая кнопка мыши не нажата. Это работает, но если вы двигаете мышь очень медленно. Если быстро переместить мышь, прямоугольник перестает двигаться (захват мыши потерян?)
Приветствия