首页 > 解决方案 > 拖放到可编辑的组合框上

问题描述

在 WPF 中,我需要将文件拖放到可编辑的组合框中。我可以放在箭头和组合框的边框上,但不能直接放在主要的白色部分(文本框部分)上。我试图为子文本框添加处理程序,但没有运气。这是我使用的代码(VB .net,我知道......)

  CType(Combo_Fichier1.Template.FindName("PART_EditableTextBox", Combo_Fichier1), TextBox).AllowDrop = True
  AddHandler CType(Combo_Fichier1.Template.FindName("PART_EditableTextBox", Combo_Fichier1), TextBox).Drop, AddressOf Combo_Fichier1_Drop
  AddHandler CType(Combo_Fichier1.Template.FindName("PART_EditableTextBox", Combo_Fichier1), TextBox).DragEnter, AddressOf Function_DragEnter
  AddHandler CType(Combo_Fichier1.Template.FindName("PART_EditableTextBox", Combo_Fichier1), TextBox).DragOver, AddressOf Function_DragEnter

我的 DragEnter 函数将拖放效果更改为复制(在边框和箭头上工作),而我的拖放函数只需使用文件的名称和路径设置组合框的文本。这是一种带内存的文件选择器。

标签: wpfvb.netcomboboxdrag-and-drop

解决方案


出现此问题的原因可能是 TextBox 控件支持开箱即用的字符串拖放操作。因此,它忽略了其他对象。可以使用 PreviewDragOver 事件来避免此问题,如该线程中所述:https ://stackoverflow.com/a/23150582/12797700


推荐阅读