2010-01-08 5 views
0

J'ai une application WPF qui contient un contrôle WebBrowser.Arrêter le déplacement à partir d'un contrôle WPF WebBrowser

Actuellement, l'utilisateur peut sélectionner quelque chose dans le WebBrowser et peut copier le contenu en le faisant glisser vers une autre application et en l'y déposant. Je voudrais pouvoir empêcher l'utilisateur de le faire. Je supposais qu'il y aurait un événement "DragStart" que je pourrais capturer et annuler - mais je n'ai pas été capable de trouver quelque chose d'aussi simple.

Est-il possible de capturer le début de l'événement de déplacement et de l'annuler?
Y a-t-il un meilleur moyen d'y parvenir?

Répondre

1

Vous pouvez mettre en œuvre IDocHostUIHandler :: FilterDataObject et filtrer les formats de presse-papiers communs

Vous ne recevez pas accéder à l'interface native du navigateur WPF jusqu'à ce que le document est prêt. Vous ne savez pas si cela fonctionnerait avec la classe de navigateur WPF. Il existe également un bogue dans Windows Forms pour vous empêcher de personnaliser son implémentation de IDocHostUIHandler.

Vous pouvez essayer une classe wrapper du navigateur Web ActiveX, tel que celui décrit à http://www.codeproject.com/KB/miscctrl/csEXWB.aspx

+0

Désolé de ne pas répondre plus tôt - les priorités ont changé et j'ai oublié de cette ... J'ai une mise en œuvre assez vide de l'interface IDocHostUIHandler travaillant sur mon WPF WebBrowser - J'ai implémenté la fonction ShowContextMenu(). Cependant, je ne suis pas sûr de savoir comment implémenter FilterDataObject() - mes tentatives ne fonctionnent pas et sont ignorées. Pouvez-vous fournir plus de détails? – Grhm

+0

vérifier http://blog.csdn.net/jiangsheng/archive/2004/03/20/3800.aspx. dans MFC, cependant. Vous ne savez pas comment l'implémenter dans le code managé. Peut-être que vous pouvez écrire une fonction C++ native et l'appeler via p-invoke? –

+0

J'ai réussi à faire fonctionner ceci en m'assurant que IDocHostUIHandler :: GetDropTarget renvoie null. Ensuite, FilterDataObject() ne semble pas être appelé et le déplacement est désactivé. – Grhm

Questions connexes