从WPF控件拖放到Winform控件的注意事项

     最近在开发一个项目时,需要在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;

原文地址:https://www.cnblogs.com/wenjingu/p/2013226.html