Wpf: arrastar e soltar para uma caixa de texto
Pesquisei esse problema no Google e as pessoas responderam perguntas semelhantes, mas, por algum motivo, não consigo fazer nada funcionar. Devo ter perdido alguma coisa aqui ... De qualquer forma, quando executo o código a seguir, o manipulador TextBox_DragEnter nunca é chamado. No entanto, se eu alterar o elemento TextBox no xaml para um elemento TextBlock, ele será chamado. Existe alguma maneira de obter o mesmo comportamento de um elemento TextBox? O código a seguir isola completamente o problema ...
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)
{
}
}
}
Muito obrigado antecipadamente!
Andrew
EDITAR:
Apenas para esclarecer, gostaria de permitir soltar um objeto personalizado em uma caixa de texto. No manipulador de recebimento da caixa de texto, gostaria de definir o texto da caixa de texto como uma propriedade no objeto e, em seguida, defina a propriedade IsReadOnly do TextBox como false. Estou apenas tendo problemas para ativar o recurso de arrastar e soltar para o TextBox ...