拖放到可编辑的组合框上
Drag and drop on editable combobox
在 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 函数将拖放效果更改为复制(在边框和箭头上工作),而我的拖放函数只是使用文件的名称和路径设置组合框的文本。这是一种带记忆的文件选择器。
出现该问题的原因可能是TextBox 控件支持拖放文本框外的字符串。因此它会忽略其他对象。
可以使用 PreviewDragOver 事件来避免此线程中所述的此问题:
在 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 函数将拖放效果更改为复制(在边框和箭头上工作),而我的拖放函数只是使用文件的名称和路径设置组合框的文本。这是一种带记忆的文件选择器。
出现该问题的原因可能是TextBox 控件支持拖放文本框外的字符串。因此它会忽略其他对象。 可以使用 PreviewDragOver 事件来避免此线程中所述的此问题: