private void Button_PreviewMouseMove(object sender, MouseEventArgs e) { if (!MouseDrag.IsBeingPerformed) { return; } var pos = e.GetPosition(this); if (!MouseDrag.HasMoved(pos)) { return; } new MoveTileCommand().Execute(MouseDrag.LastSender._tile); MouseDrag.ResetPosition(); }