private static void OnDragChanged(object sender, DependencyPropertyChangedEventArgs e) { // ignoring error checking var element = (UIElement)sender; var isDrag = (bool)(e.NewValue); Instance = new DragBehavior(); ((UIElement)sender).RenderTransform = Instance.Transform; if (isDrag) { element.MouseLeftButtonDown += Instance.ElementOnMouseLeftButtonDown; element.MouseLeftButtonUp += Instance.ElementOnMouseLeftButtonUp; element.MouseMove += Instance.ElementOnMouseMove; } else { element.MouseLeftButtonDown -= Instance.ElementOnMouseLeftButtonDown; element.MouseLeftButtonUp -= Instance.ElementOnMouseLeftButtonUp; element.MouseMove -= Instance.ElementOnMouseMove; } }