//实现拖动文件到文本框,自动读出文件内容 //前端XAML代码: <TextBox AcceptsReturn="True" AcceptsTab="True" AllowDrop="True" HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto" PreviewDragOver="TextBox_PreviewDragOver" PreviewDrop="TextBox_PreviewDrop" Name="TextBox"/> //后端事件处理代码 //拖动触发 private void TextBox_PreviewDragOver(object sender, DragEventArgs e) { if (GetSingleFileContent(e) != null) { e.Effects = DragDropEffects.Copy; } else { e.Effects = DragDropEffects.None; } e.Handled = true; } //拖动的放置事件处理 private void TextBox_PreviewDrop(object sender, DragEventArgs e) { e.Handled = true; string filename = GetSingleFileContent(e); if (filename==null) { return; } StreamReader sr = new StreamReader(filename); TextBox.Text = sr.ReadToEnd(); sr.Close(); } //获取拖动事件的文件数量和内容 private string GetSingleFileContent(DragEventArgs args) { if (args.Data.GetDataPresent(DataFormats.FileDrop,true)) { string[] filenames = args.Data.GetData(DataFormats.FileDrop, true) as string[]; if (filenames.Length==1) { if (File.Exists(filenames[0])) { return filenames[0]; } } else { MessageBox.Show("拖入多个文件无效"); } } return null; }