예제 #1
0
        protected override void OnPreviewDragHint(PreviewDragHintEventArgs e)
        {
            if (!this.ShowDragHint)
            {
                e.DragHint       = (Image)null;
                e.UseDefaultHint = false;
            }
            TreeViewPreviewDragHintEventArgs dragHintEventArgs = new TreeViewPreviewDragHintEventArgs(e.DragInstance, DropPosition.None);

            dragHintEventArgs.DragHint       = e.DragHint;
            dragHintEventArgs.UseDefaultHint = e.UseDefaultHint;
            base.OnPreviewDragHint((PreviewDragHintEventArgs)dragHintEventArgs);
        }
예제 #2
0
        protected override void SetHintWindowPosition(Point mousePt)
        {
            this.owner.ElementTree.Control.PointToClient(mousePt);
            TreeNodeElement dropTarget = this.DropTarget as TreeNodeElement;

            if (dropTarget != null)
            {
                DropPosition dropPosition          = this.GetDropPosition(dropTarget.PointFromScreen(mousePt), dropTarget);
                TreeViewPreviewDragHintEventArgs e = new TreeViewPreviewDragHintEventArgs(this.Context as ISupportDrag, dropPosition);
                this.OnPreviewDragHintWithDropPosition(e);
                Image image1 = (Image)null;
                if (e.UseDefaultHint)
                {
                    switch (dropPosition)
                    {
                    case DropPosition.BeforeNode:
                        image1 = (Image)Telerik\u002EWinControls\u002EUI\u002EResources.RadTreeViewDropBefore;
                        break;

                    case DropPosition.AfterNode:
                        image1 = (Image)Telerik\u002EWinControls\u002EUI\u002EResources.RadTreeViewDropAfter;
                        break;

                    case DropPosition.AsChildNode:
                        image1 = (Image)Telerik\u002EWinControls\u002EUI\u002EResources.RadTreeViewDropAsChild;
                        break;
                    }
                    if (image1 != null && this.dragHintImageCache != null && this.ShowDragHint)
                    {
                        Image image2 = (Image) new Bitmap(image1.Width + this.dragHintImageCache.Width, Math.Max(image1.Height, this.dragHintImageCache.Height));
                        using (Graphics graphics = Graphics.FromImage(image2))
                        {
                            graphics.Clear(Color.White);
                            graphics.DrawImage(image1, new RectangleF(0.0f, (float)(image2.Height - image1.Height) / 2f, (float)image1.Width, (float)image1.Height));
                            graphics.DrawImage(this.dragHintImageCache, new RectangleF((float)image1.Width, (float)(image2.Height - this.dragHintImageCache.Height) / 2f, (float)this.dragHintImageCache.Width, (float)this.dragHintImageCache.Height));
                            graphics.DrawRectangle(Pens.LightGray, new Rectangle(0, 0, image2.Width - 1, image2.Height - 1));
                        }
                        this.HintWindow.BackgroundImage = image2;
                    }
                    base.SetHintWindowPosition(new Point(mousePt.X - 20, mousePt.Y));
                    return;
                }
                this.HintWindow.BackgroundImage = e.DragHint;
            }
            base.SetHintWindowPosition(new Point(mousePt.X, mousePt.Y));
        }
예제 #3
0
 protected virtual void OnPreviewDragHintWithDropPosition(TreeViewPreviewDragHintEventArgs e)
 {
     base.OnPreviewDragHint((PreviewDragHintEventArgs)e);
 }