Hello. I working a project in visual studio 2022. i created a canvas and i have a drag drop system. but i need to drag drop process more pixelate movement. if i not tell, look the this gif, maybe more easier way. someone help me?
my code is :
private void actionmodel_PreviewMouseDown(object sender, MouseButtonEventArgs e)
{
if (ismove == 0)
{
ismove += 1;
}
this.dragObject = sender as UIElement;
this.offset = e.GetPosition(this.savedCanvas);
this.offset.Y -= Canvas.GetTop(this.dragObject);
this.offset.X -= Canvas.GetLeft(this.dragObject);
this.savedCanvas.CaptureMouse();
}
//canvasmain üzerinde fare hareket etti ise
private void canvasmain_PreviewMouseMove(object sender, MouseEventArgs e)
{
if (ismove == 1)
{
ismove = 2;
}
if (this.dragObject == null)
return;
var position = e.GetPosition(sender as IInputElement);
Canvas.SetTop(this.dragObject, position.Y - this.offset.Y);
Canvas.SetLeft(this.dragObject, position.X - this.offset.X);
}
//canvasmain üzerinde fare tuşu kalktıysa
private void canvasmain_PreviewMouseUp(object sender, MouseButtonEventArgs e)
{
this.dragObject = null;
this.savedCanvas.ReleaseMouseCapture();
if (ismove == 2)
{
Diary.Items.Add("Hareket Ettirildi");
ismove = 0;
}
}
gif : https://drive.google.com/file/d/1fHE2wVRFmPL8k2ViM3gkaNOoKl-ovvbd/view?usp=s