System.Windows.Clipboard和System.Windows.Forms.Clipboard之间有区别吗?

时间:2012-04-02 07:30:15

标签: wpf clipboard

System.Windows.Clipboard和System.Windows.Forms.Clipboard之间有区别吗?

System.Windows.Forms版本的文档明确指出,要在剪贴板上存储对象,它必须是可序列化的,并且您的应用程序必须具有STA模型,但System.Windows版本的文档不列出要么作为要求。是吗?为什么有两节课?有什么区别?

如果它很重要,我们的应用程序是WPF,是的,我知道前者适用于WPF,后者适用于Windows.Forms ......但为什么?为什么不总是使用System.Windows版本,即使是基于表单的应用程序,因为它只是一个参考,并且使用的限制较少,而对象只是.NET中的一个对象。

2 个答案:

答案 0 :(得分:6)

简单:System.Windows.Clipboard(在PresentationCore.dll中)用于WPF,而System.Windows.Forms.Clipboard(在System.Windows.Forms.dll中)用于Windows窗体。

你会经常在两个集合中遇到看似相同的类;这是因为WPF和WinForms基于完全不同的系统,许多框架API必须以不同的方式实现。我自己并没有真正使用系统剪贴板,但我的猜测是它与WinForms相对接近低级Win32 API有关。不过我不确定。

由于您正在使用WPF,因此您应该使用System.Windows.Clipboard,因为表面上WPF的实现与WinForms不同。

答案 1 :(得分:0)

System.Windows命名空间是关于WPF(在Windows中创建GUI的新方法),而System.Windows.Forms命名空间包含有关Forms(旧样式)的元素。