StackPanel panel;
void panel_PreviewMouseMove(object sender, MouseEventArgs e)
{
Point x = e.GetPosition(ImageHolder);
if (e.LeftButton == MouseButtonState.Pressed)
{
if (panel == null)
{
panel = (StackPanel)sender;
}
if ((Canvas.GetLeft(panel) + (x.X - p.X)) <= (Img.Width - panel.Width) && (Canvas.GetLeft(panel) + (x.X - p.X)) >= 0)
{
Canvas.SetLeft(panel, Canvas.GetLeft(panel) + (x.X - p.X));
}
if ((Canvas.GetTop(panel) + (x.Y - p.Y)) <= (Img.Height - panel.Height) && (Canvas.GetTop(panel) + (x.Y - p.Y)) >= 0)
{
Canvas.SetTop(panel, Canvas.GetTop(panel) + (x.Y - p.Y));
}
}
else if (e.LeftButton == MouseButtonState.Released)
{
panel = null;
}
p = x;
}