title: How to move control in panel by mouse
body: <p>I can not move the border control while the mouse is outside the border cotnrol</p>
  
  <pre><code>&lt;Window
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
      xmlns:local="clr-namespace:WpfApplication2"
    x:Class="WpfApplication2.MainWindow"
    x:Name="Window"
    Title="Window1"
    Width="346.5" Height="215" WindowStyle="SingleBorderWindow" &gt;
  
      &lt;Grid Name="stack" &gt;
  
          &lt;Border x:Name="btn" Width="50" Height="20" VerticalAlignment="Top" BorderThickness="1" BorderBrush="Black" Background="#FFF50000"
                  MouseMove="btn_MouseMove" MouseDown="btn_MouseDown" MouseUp="btn_MouseUp"  /&gt;
      &lt;/Grid&gt;
  &lt;/Window&gt; 
  </code></pre>
  
  <p>Code behind</p>
  
  <pre><code>bool state = false;
  Point prePoint;
  
  private void btn_MouseMove(object sender, MouseEventArgs e)
  {
      if (state)
      {
          Point p = e.GetPosition(this);
          Point p2 = e.GetPosition(btn);
          btn.Margin = new Thickness(0, p.Y - p2.Y + p.Y - prePoint.Y, 0, 0);
          prePoint = e.GetPosition(this);
      }
  }
  private void btn_MouseDown(object sender, MouseButtonEventArgs e)
  {
      if (sender == btn)
      {
          prePoint = e.GetPosition(this);
          state = true;
      }
  }
  
  private void btn_MouseUp(object sender, MouseButtonEventArgs e)
  {
      state = false;
  }
  </code></pre>