title: moving multiple controls
body: <p>I need to move a multiple textboxes with a mouse cursor.
  I decided that I do it that way.
  If a textbox is clicked (and Control button is pressed) textbox is added to list of selected items. Then when button is still pressed and when mouse moves I do an operation of moving controls. However my code doesn't work well. Textboxes are moving but very very fast. Here is my code </p>
  
  <pre><code> List&lt;TextBox&gt; items;
   private void txtBox_PreviewMouseDown(object sender, RoutedEventArgs e)
      {
  
  
              isClicked = true;
              startPoint = Mouse.GetPosition(  (sender as TextBox).Parent);
              items = CurrentSelection;
  
  
  
  
      }
  private void txtBox_PreviewMouseMove(object sender, RoutedEventArgs e)
      {
  
  
          Point mousePos = Mouse.GetPosition(parentCanvas);
           if (isClicked)
           {
               foreach (TextBox item in items)
               {
                   double left = Canvas.GetLeft(item);
                   double top = Canvas.GetTop(item);
  
                   Canvas.SetLeft(item, left + (startPoint.X - mousePos.X));
                   Canvas.SetTop(item, top + (startPoint.Y - mousePos.Y));
               }
           }
  
      }
  </code></pre>
  
  <p>Basically I iterate through all selected items and change their position on canvas. However I probably calculate a new position in a wrong way.</p>