在 .NET Framework 中,DataObject 类是实现数据传输机制的核心组件,它为拖放、剪贴板等操作提供了与格式无关的数据传输方式。它主要有两个实现,分别位于不同的命名空间:
System.Windows.Forms.DataObject——这个类主要用于 Windows 窗体(WinForms)应用程序。
核心功能:实现 IDataObject 接口,提供一个容器来存储一种或多种格式的数据。
主要用途:在拖放操作和剪贴板交互中作为数据载体。例如,当用户从一个文本框拖拽文字到另一个文本框时,数据就被封装在一个 DataObject 中进行传递。
关键特性:
可以在一个 DataObject 实例中存储多种格式的数据(如文本、位图、自定义对象等),以增加目标应用程序成功接收数据的可能性。
支持数据的自动格式转换。例如,存储的文本数据可以被请求为 Unicode 格式。
提供了 SetData、GetData、GetDataPresent 等方法来操作数据。
System.Windows.DataObject——这个类主要用于 Windows Presentation Foundation (WPF) 应用程序。
核心功能:与 WinForms 版本类似,它也是 IDataObject 接口的基本实现,用于在 WPF 的 UI 元素之间传输数据。
主要用途:支持 WPF 中的拖放、复制、粘贴等功能。
关键特性:
提供了更现代化的 API,例如 SetText、GetText、ContainsText 等,使得处理特定格式的数据更加方便。
同样支持多种数据格式和自动转换。- protected override void OnMouseMove(MouseEventArgs e)
- {
- base.OnMouseMove(e);
- if (e.LeftButton == MouseButtonState.Pressed)
- {
- // Package the data.
- DataObject data = new DataObject();
- data.SetData(DataFormats.StringFormat, circleUI.Fill.ToString());
- data.SetData("Double", circleUI.Height);
- data.SetData("Object", this);
- // Initiate the drag-and-drop operation.
- DragDrop.DoDragDrop(this, data, DragDropEffects.Copy | DragDropEffects.Move);
- }
- }
复制代码
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |