コード例 #1
0
        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;
        }