System.Windows.Clipboard和System.Windows.Forms.Clipboard之间有区别吗?
System.Windows.Forms版本的文档明确指出,要在剪贴板上存储对象,它必须是可序列化的,并且您的应用程序必须具有STA模型,但System.Windows版本的文档不列出要么作为要求。是吗?为什么有两节课?有什么区别?
如果它很重要,我们的应用程序是WPF,是的,我知道前者适用于WPF,后者适用于Windows.Forms ......但为什么?为什么不总是使用System.Windows版本,即使是基于表单的应用程序,因为它只是一个参考,并且使用的限制较少,而对象只是.NET中的一个对象。
答案 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(旧样式)的元素。