Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将剪贴板内容设置为自定义数据_C#_Xml_Wpf_Clipboard - Fatal编程技术网

C# 将剪贴板内容设置为自定义数据

C# 将剪贴板内容设置为自定义数据,c#,xml,wpf,clipboard,C#,Xml,Wpf,Clipboard,我正在将一些XML复制到剪贴板,这只对我的应用程序有意义,我不希望其他应用程序能够粘贴。使用以下行: Clipboard.SetData(DataFormats.UnicodeText, myXML); 我可以正确地复制和粘贴它,但其他文本编辑器也可以粘贴它。我原以为在这种情况下会有一个DataFormats.Custom,但实际上没有 是否有一种方法可以将数据发送到剪贴板,并且仅适用于我的应用程序 (我假设应用程序在获取剪贴板内容之前检查可用的数据格式,如果返回的格式不是它们可以处理的,则不

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

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。我应该检查一下这个。让我试试,完全正确。感觉有点傻。谢谢你快速准确的回答。