He buscado este problema en Google y la gente ha respondido preguntas similares, pero por alguna razón no puedo hacer que nada funcione. Debo haber perdido algo aquí ... En cualquier caso, cuando ejecuto el siguiente código, nunca se llama al controlador TextBox_DragEnter. Sin embargo, si cambio el elemento TextBox en el xaml a un elemento TextBlock, se llama. ¿Hay alguna forma de obtener el mismo comportamiento de un elemento TextBox? El siguiente código aísla por completo el problema ...Wpf: Arrastrar y soltar a un cuadro de texto
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)
{
}
}
}
Muchas gracias de antemano!
Andrew
EDIT:
Solo para aclarar, me gustaría que permita dejar caer un objeto personalizado en un cuadro de texto. En el controlador de soltar para el cuadro de texto, me gustaría establecer el texto del cuadro de texto en una propiedad en el objeto, y luego establecer la propiedad IsReadOnly del TextBox en falso. Solo estoy teniendo problemas para habilitar la función de arrastrar y soltar para el TextBox ...
Gracias Liz! Eso funciona genial! – Andrew
+1 Gracias, funcionó para mí también ... Aunque, restablece los efectos establecidos en el evento DragEnter. Necesita encontrar una forma sofisticada de manejar esto. – Indigo