.NET 中两个剪贴板 类 各自的用途是什么?
What is the purpose of each of the two Clipboard classes in .NET?
为什么.NET提供两个剪贴板类:
System.Windows.Clipboard 和 System.Windows.Forms.Clipboard?
这些 类 之间有显着差异吗?
System.Windows.Clipboard
用于 WPF 应用程序,而 System.Windows.Forms.Clipboard
用于 WinForms。
它们做同样的事情,只是出现了两次,因此 WPF 应用程序不需要添加对 System.Windows.Forms 的引用,反之亦然。
其次,System.Windows.Clipboard
排在System.Windows.Forms.Clipboard
之后。 System.Windows.Clipboard
存在于 不能 引用 System.Windows.Forms 的其他平台,例如 Silverlight。
一个是WPF,另一个是Windows Forms。如果您查看 MSDN 页面,您会看到 System.Windows.Clipboard is in the PresentationCore.dll
assembly (that's WPF), the other System.Windows.Forms.Clipboard 在 System.Windows.Forms.dll
程序集中(也就是说,毫不奇怪,windows 形式)。
从本质上讲,它们都只是围绕调用 windows API(在 user32.dll 中)以操纵剪贴板的静态包装器。使用与您在应用程序中使用的技术相匹配的技术。这避免了将 System.Windows.Forms
导入您的 WPF 应用程序只是为了剪贴板或重新编写一堆 pinvoke 代码以直接在您自己的代码中点击 API 的需要。
为什么.NET提供两个剪贴板类:
System.Windows.Clipboard 和 System.Windows.Forms.Clipboard?
这些 类 之间有显着差异吗?
System.Windows.Clipboard
用于 WPF 应用程序,而 System.Windows.Forms.Clipboard
用于 WinForms。
它们做同样的事情,只是出现了两次,因此 WPF 应用程序不需要添加对 System.Windows.Forms 的引用,反之亦然。
其次,System.Windows.Clipboard
排在System.Windows.Forms.Clipboard
之后。 System.Windows.Clipboard
存在于 不能 引用 System.Windows.Forms 的其他平台,例如 Silverlight。
一个是WPF,另一个是Windows Forms。如果您查看 MSDN 页面,您会看到 System.Windows.Clipboard is in the PresentationCore.dll
assembly (that's WPF), the other System.Windows.Forms.Clipboard 在 System.Windows.Forms.dll
程序集中(也就是说,毫不奇怪,windows 形式)。
从本质上讲,它们都只是围绕调用 windows API(在 user32.dll 中)以操纵剪贴板的静态包装器。使用与您在应用程序中使用的技术相匹配的技术。这避免了将 System.Windows.Forms
导入您的 WPF 应用程序只是为了剪贴板或重新编写一堆 pinvoke 代码以直接在您自己的代码中点击 API 的需要。