2013-08-05 77 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 :) –