2013-08-05 36 views
0

我有一个ScatterView其中包括2项:ImageRichTextBox。 RichTextBox将AllowDrop设置为true。ScatterViewItem拖放到RichTextBox

当我将图像拖到RichTextBox中时,图像完全消失,但RichTextBox的DragEnterDrop事件根本没有启动。 PreviewDragEnterPreviewDrop也没有。

我尝试将RichTextBox的AllowDrop设置为false,并且该图像按预期位于RichTextBox的顶部。

如何获取RichTextBox的DragEnterDrop事件触发?唯一引发的是ScatterView的Drop事件。

+0

在WPF中默认启用drop事件,并且应该在你的代码中工作,但好像你没有正确使用它。 RichTextBox无法保存图像,只是文本;所以被拖动的财产应该是图片的名称,也许你没有做。你能否包括你试图看到你在做什么错的代码? – varocarbas

+0

哦,你好。当我提到它没有触发时,这意味着它在VS2010的调试模式下没有达到断点。断点设置在各个事件(previewdrag,drop,..)的开头{。放置事件正在工作,因为如果我禁用它,图像将位于RichTextBox的顶部而不是消失。现在这个问题已经消失了,我不知道它到底发生了什么,因为所有的Drop事件根本没有发生。我会尝试发布一些代码。 –

+0

几周前我处理了一个等价的问题,你是对的:你没有得到被释放的drop事件(该方法显然没有达到)。原因在于,只要WPF应用程序自己处理它(默认情况下),就不需要添加此方法,您必须禁用此自动管理(不确定如何执行此操作;但是,另一方面,将是毫无意义的)。我相信你的主要问题是拖动部分。请发布您正在尝试的代码。 – varocarbas

回答

2

拖动&拖放与Surface控件(如ScatterView)不同,从正常Windows拖动&下降。被拖动的东西是一个二维形状(不是一个点),可能有多个输入拖动它。因此,我们无法将Surface拖放功能填充到现有的WPF拖放API中。相反,您需要使用类似http://msdn.microsoft.com/en-us/library/microsoft.surface.presentation.surfacedragdrop.dragenter.aspx的SurfaceDragDrop对象的附加事件,这些对象与WPF等效物非常相似,但启用了表面友好的用户体验。

+0

谢谢!很好地在RichTextBox上触发SurfaceDragDrop.DragEnter :) –