最近在开发一个项目时,需要在WPF窗体中嵌入Winform控件,在尝试从WPF控件拖放到Winform控件时遇到了一些问题,现将问题和解决方法总结如下:
1、如果自定义了拖拽实体类,如
public class DragObject
{
public string Name { get; set; }
}
应在类定义前加[Serializable]特性标记,否则在目标方接收数据时会提示“未将对象引用设置到对象实例”
2、在Winform端有时会出现不触发DragDrop事件的情况,该情况下应先触发DragEnter事件,在DragEnter事件中修改拖放效果,如e.Effect = DragDropEffects.Copy;修改后即可响应DragDrop事件,在DragDrop事件中可按如下方法获取拖放数据:DragObject dragObject = e.Data.GetData(typeof(DragObject)) as DragObject;