【问题标题】:Setting clipboard contents to custom data将剪贴板内容设置为自定义数据
【发布时间】:2017-10-17 09:06:28
【问题描述】:

我正在将一些 XML 复制到 Clipboard,这仅对我的应用程序有意义,并且我不希望其他应用程序能够粘贴。使用以下行:

Clipboard.SetData(DataFormats.UnicodeText, myXML);

我可以正确复制和粘贴内容,但其他文本编辑器也可以粘贴。我原以为这种情况会有DataFormats.Custom,但没有。

有没有一种方法可以将数据发送到剪贴板,并且仅适用于我的应用程序?

(我假设应用程序在获取剪贴板内容之前检查可用的 DataFormats,如果返回的格式不是它们可以处理的格式,则不获取它们。例如,如果我在复制一个文件后使用粘贴命令,记事本将什么也不做图片)

【问题讨论】:

  • DataFormat 的自定义实例是否有效?
  • @someone: 否 SetData 不接受 DataFormat 对象。

标签: c# xml wpf clipboard


【解决方案1】:

Clipboard.SetData 需要简单的字符串作为第一个参数,DataFormat 不是枚举。所以你可以这样做:

Clipboard.SetData("my_custom_format", myXml);

然后您可以检查剪贴板是否包含您的数据

if (Clipboard.ContainsData("my_custom_format")) {
    var xml = Clipboard.GetData("my_custom_format");
}

您将无法将此数据粘贴到记事本等其他编辑器中。

【讨论】:

  • 哎哟。应该检查一下。让我试试。
  • 完全正确。感觉有点傻。感谢您快速准确的回答。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多