2010-01-08 150 views
0

拖動我有一個WPF應用程序,其包含一個控制WebBrowser停止從WPF web瀏覽器控件

目前,用戶可以選擇WebBrowser內的東西,可以通過拖動到另一個應用程序,並放棄它那裏複製的內容。

我希望能夠阻止用戶這樣做。我以爲會有一個"DragStart"事件,我可以捕獲和取消 - 但我一直無法找到如此簡單的事情。

是否有可能捕捉到拖動事件的開始和取消?
有沒有更好的方法來實現這一目標?

回答

1

您可以實現的IDocHostUIHandler :: FilterDataObject和濾除共剪貼板格式

你沒有得到,直到該文件已準備好訪問WPF瀏覽器的原生界面。不知道它是否可以與WPF瀏覽器類一起使用。 Windows窗體中還存在一個錯誤,以防止您定製IDocHostUIHandler的實現。

你可以嘗試一些包裝類的web瀏覽器ActiveX,如在http://www.codeproject.com/KB/miscctrl/csEXWB.aspx

+0

對不起,不回答越早所描述的 - 優先級改變了,我忘了這個...... 我有一個相當空的實現在我的WPF WebBrowser上工作的IDocHostUIHandler接口 - 我實現了ShowContextMenu()函數。 不過,我不知道如何實現FilterDataObject() - 我的嘗試沒有工作,被忽略了。你能提供更多細節嗎? – Grhm 2010-01-29 16:55:15

+0

檢查http://blog.csdn.net/jiangsheng/archive/2004/03/20/3800.aspx。它在MFC中,但。不知道如何在託管代碼中實現它。也許你可以編寫一個本地C++函數並通過p-invoke調用它? – 2010-01-29 19:27:10

+0

我設法通過確保IDocHostUIHandler :: GetDropTarget返回null來工作。然後FilterDataObject()看起來不會被調用,並且禁用拖動。 – Grhm 2010-02-01 10:56:14