C# 将剪贴板内容设置为自定义数据
我正在将一些XML复制到C# 将剪贴板内容设置为自定义数据,c#,xml,wpf,clipboard,C#,Xml,Wpf,Clipboard,我正在将一些XML复制到剪贴板,这只对我的应用程序有意义,我不希望其他应用程序能够粘贴。使用以下行: Clipboard.SetData(DataFormats.UnicodeText, myXML); 我可以正确地复制和粘贴它,但其他文本编辑器也可以粘贴它。我原以为在这种情况下会有一个DataFormats.Custom,但实际上没有 是否有一种方法可以将数据发送到剪贴板,并且仅适用于我的应用程序 (我假设应用程序在获取剪贴板内容之前检查可用的数据格式,如果返回的格式不是它们可以处理的,则不
剪贴板
,这只对我的应用程序有意义,我不希望其他应用程序能够粘贴。使用以下行:
Clipboard.SetData(DataFormats.UnicodeText, myXML);
我可以正确地复制和粘贴它,但其他文本编辑器也可以粘贴它。我原以为在这种情况下会有一个DataFormats.Custom
,但实际上没有
是否有一种方法可以将数据发送到剪贴板,并且仅适用于我的应用程序
(我假设应用程序在获取剪贴板内容之前检查可用的数据格式,如果返回的格式不是它们可以处理的,则不获取它们。例如,如果复制图像后使用“粘贴”命令,记事本将不起任何作用)
剪贴板。SetData
需要简单的字符串作为第一个参数,DataFormat
不是枚举。所以你可以这样做:
Clipboard.SetData("my_custom_format", myXml);
然后,您可以检查剪贴板是否包含您的数据
if (Clipboard.ContainsData("my_custom_format")) {
var xml = Clipboard.GetData("my_custom_format");
}
您将无法将此数据粘贴到其他编辑器(如记事本)中。自定义DataFormat实例有效吗?@someone:No
SetData
不接受DataFormat
object.Ouch。我应该检查一下这个。让我试试,完全正确。感觉有点傻。谢谢你快速准确的回答。