public static void Start(UIElement element)
{
if (Element != null)
throw new Exception("Another element is being dragged. Only one element at a time may be dragged.");
Element = element;
Element.CaptureMouse();
Element.MouseMove += new MouseEventHandler(UIElement_MouseMove);
TransformGroup tg = Element.RenderTransform as TransformGroup;
if (tg == null)
{
tg = CreateTransformGroup();
Element.RenderTransform = tg;
}//end if
TranslateTransform tt = tg.Children.Where(t => t is TranslateTransform).SingleOrDefault() as TranslateTransform;
if (tt == null)
tt = new TranslateTransform();
tt.X = 0;
tt.Y = 0;
OnDragStarted(Element);
}