System.
Windows.Clipboard和System.Windows.Forms.Clipboard有区别吗?
System.Windows.Forms版本的文档特别声明,要将一个对象存储在剪贴板上,它必须是可序列化的,您的应用程序必须具有STA模型,但是System.Windows版本的文档不会列为一个要求.是吗?为什么有两个班?有什么不同?
如果重要,我们的应用程序是WPF,是的,我知道前者是为WPF,后者为Windows.Forms …但为什么?为什么不总是使用System.Windows版本,即使是基于表单的应用程序,考虑到它只是一个参考,在使用方面的限制较少,一个对象只是.NET中的一个对象.
简单:System.Windows.Clipboard(在PresentationCore.dll中)适用于WPF,而System.Windows.Forms.Clipboard(在System.Windows.Forms.dll中)适用于Windows Forms.
你会经常在两个程序集中遇到看似相同的类;这是因为WPF和WinForms基于足够不同的系统,许多框架API必须以不同的方式实现.我自己还没有真正使用系统剪贴板,但我猜测它与WinForms相对接近低级别的Win32 API有关.我不会确定,但是.
既然你使用WPF,你应该使用System.Windows.Clipboard,因为表面上WPF的实现不同于WinForms.