首先,在XAML中为TextBox添加以下属性:AllowDrop="True"
。这将启用TextBox的拖放功能。
public MainWindow()
{
InitializeComponent();
textBox.AllowDrop = true;
textBox.PreviewDragOver += TextBox_PreviewDragOver;
textBox.PreviewDrop += TextBox_PreviewDrop;
textBox.PreviewDragEnter += TextBox_PreviewDragEnter;
}
private void TextBox_PreviewDragOver(object sender, DragEventArgs e)
{
if (e.Data.GetDataPresent(DataFormats.FileDrop))
{
e.Effects = DragDropEffects.Copy;
}
else
{
e.Effects = DragDropEffects.None;
}
e.Handled = true;
}
private void TextBox_PreviewDrop(object sender, DragEventArgs e)
{
if (e.Data.GetDataPresent(DataFormats.FileDrop))
{
string[] files = (string[])e.Data.GetData(DataFormats.FileDrop);
if (files != null && files.Length > 0)
{
textBox.Text = files[0];
}
}
}
private void TextBox_PreviewDragEnter(object sender, DragEventArgs e)
{
e.Effects = DragDropEffects.Copy;
e.Handled = true;
}