J'ai googlé ce problème, et les gens ont répondu à des questions similaires, mais pour une raison quelconque, je ne peux rien pour travailler. Je dois avoir manqué quelque chose ici ... En tout cas, quand je cours le code suivant, le gestionnaire de TextBox_DragEnter n'est jamais appelé. Cependant, si je change l'élément TextBox dans le xaml en un élément TextBlock, il est appelé. Est-il possible d'obtenir le même comportement à partir d'un élément TextBox? Le code suivant isole complètement le problème ...WPF: glisser-déposer pour une zone de texte
MainWindow.xaml:
<Window x:Class="Wpf1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Grid Name="myGrid">
<TextBox AllowDrop="True" PreviewDragEnter="TextBox_DragEnter" PreviewDrop="TextBox_Drop" />
</Grid>
</Window>
MainWindow.xaml.cs:
using System.Windows;
using System.Windows.Controls;
using System.Windows.Input;
using System.Collections.ObjectModel;
namespace Wpf1
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
private void TextBox_DragEnter(object sender, DragEventArgs e)
{
e.Effects = DragDropEffects.Copy;
}
private void TextBox_Drop(object sender, DragEventArgs e)
{
}
}
}
Un grand merci à l'avance!
Andrew
EDIT:
Juste pour clarifier les choses, je voudrais permettre à laisser tomber un objet personnalisé dans une zone de texte. Dans le gestionnaire d'abandon pour la zone de texte, je voudrais alors définir le texte de la zone de texte à une propriété dans l'objet, puis définissez la propriété IsReadOnly de la zone de texte sur false. J'ai juste quelques difficultés à activer le glisser-déposer pour le TextBox ...
Merci Liz! Cela fonctionne très bien! – Andrew
+1 Merci, a travaillé pour moi aussi ... Bien, alors il réinitialise le jeu d'effets dans l'événement DragEnter. Besoin de trouver un moyen sophistiqué de gérer cela. – Indigo