private void OnDragInitialized(object sender, DragInitializeEventArgs args) { var toolBoxItem = args.OriginalSource as ToolboxItem; if (toolBoxItem != null) { var serializer = new SerializationService(null); var shape = toolBoxItem.Shape; if (shape != null) { args.Data = serializer.SerializeItems(new List<IDiagramItem> { shape as IDiagramItem }); args.DragVisualOffset = new Point(args.RelativeStartPoint.X - (shape.ActualWidth / 2), args.RelativeStartPoint.Y - (shape.ActualHeight / 2)); var draggingImage = new Image { Source = new Telerik.Windows.Media.Imaging.RadBitmap(shape).Bitmap, Width = shape.ActualWidth, Height = shape.ActualHeight }; args.DragVisual = draggingImage; } } args.AllowedEffects = DragDropEffects.All; args.Handled = true; }