2010-12-11 55 views
3

je veux mettre en place un glisser/déposer mécanicien dans WPF, mais il ne fonctionne pas ... avec Windows Forms-il travaillé, ...C#: glisser-déposer dans WPF (RichTextbox)

Première J'ai mis AllowDrop à True. Dans les formulaires Windows, vous pouvez déjà faire glisser des éléments dans la zone richtext et le curseur change.

Avec WPF .... rien ne se passe.

Le point suivant: Implémenter des méthodes DragEnter et DragDrop. Je l'ai fait comme le disent les manuels en ligne. (ok je devais essayer quelque chose de plus, parce que DragDrop n'existe pas dans WPF) Je pense que tous les tutoriels pour glisser/déposer sont seulement pour Windowsforms, rien pour WPF ...

Y at-il un problème avec la zone de texte riche? ? Si je le change en "allowDrop" - rien ne se passe. Le curseur est toujours un symbole non autorisé.

quelqu'un L'espoir peut aider :)

Examplecode de tutoriels i lire:

richTextBox1.AllowDrop = true; 

void richTextBox1_DragEnter(object sender, DragEventArgs e) 
{ 
    e.Effect = DragDropEffects.None; 

    if (e.Data.GetDataPresent(DataFormats.XXX)) 
    { 
     e.Effect = DragDropEffects.Copy; 
    } 
} 

void richTextBox1_DragDrop(object sender, DragEventArgs e) 
{ 
    //intert in richtextbox ... 
    richTextBox1.methodeXY(); 
} 

Répondre

7

j'étais curieux de savoir pourquoi j'ai eu un peu de jeu et finalement eu à travailler. Essentiellement, j'ai commencé en se liant aux événements PreviewXXX comme ceci:

AllowDrop="True" PreviewDragEnter="RichTextBox_DragEnter" PreviewDragOver="RichTextBox_DragEnter" PreviewDrop="RichTextBox_Drop" 

Même encore, ils ne travaillaient toujours pas. Mais la réponse est venue here, sous la forme d'autorisations élevées. Je cours habituellement VS2010 avec l'élévation d'admin. Parce que je déposais certains fichiers de l'Explorateur sur mon RichTextBox, cela interdisait essentiellement l'opération car Explorer s'exécutait dans un mode utilisateur non élevé. L'exécution du VS2010 en mode non élevé a résolu le problème. L'article lié suggère quelques solutions de contournement, mais je ne les ai pas encore essayées.