I created a movable UserControl
Based upon information in @Mediator answer. I have came up and edited to prevent the control from going out of bounds.
private TranslateTransform transform = new TranslateTransform();
private void root_MouseMove(object sender, MouseEventArgs e)
{
if (isInDrag)
{
var element = sender as FrameworkElement;
currentPoint = e.GetPosition(null);
transform.X += currentPoint.X - anchorPoint.X;
transform.Y += (currentPoint.Y - anchorPoint.Y);
if (currentPoint.X < Application.Current.MainWindow.RenderSize.Width && currentPoint.Y < Application.Current.MainWindow.RenderSize.Height
&& currentPoint.X > 0 && currentPoint.Y > 0 )
{
this.RenderTransform = transform;
anchorPoint = currentPoint;
}
else
{
transform = new TranslateTransform();
this.RenderTransform = transform;
}
}
}
But binding errors are their in output window in VS.
It looks like this is an issue in WPF, but one that Microsoft won't fix.
For more info here:
https://connect.microsoft.com/VisualStudio/feedback/details/1423399/system-windows-data-error-4-when-using-relativesource-findancestor-inside-a-translatetransform-inside-a-style