.net 使用IncludeHeader ClipboardCopyMode时出现WPF Datagrid COMException异常
在我的WPF应用程序中,我使用的是.net 使用IncludeHeader ClipboardCopyMode时出现WPF Datagrid COMException异常,.net,wpf,wpfdatagrid,clipboard,.net,Wpf,Wpfdatagrid,Clipboard,在我的WPF应用程序中,我使用的是Datagrid控件;在控件定义中,我将ClipboardCopyMode属性定义为“IncludeHeader” <DataGrid Name="datagrid" ClipboardCopyMode="IncludeHeader"> </DataGrid> 有没有解决问题的建议。我看了其他文章,主要是关于当你明确使用剪贴板相关方法时如何处理这种情况,但是没有一篇与数据网格相关的文章- 从技术上讲,只有一个进程可以打开剪贴板,因此如
Datagrid
控件;在控件定义中,我将ClipboardCopyMode
属性定义为“IncludeHeader”
<DataGrid Name="datagrid" ClipboardCopyMode="IncludeHeader">
</DataGrid>
有没有解决问题的建议。我看了其他文章,主要是关于当你明确使用
剪贴板
相关方法时如何处理这种情况,但是没有一篇与数据网格
相关的文章-
从技术上讲,只有一个进程可以打开剪贴板,因此如果另一个进程
进程已打开,后续请求将失败,直到
首先释放剪贴板。这是在WinForms中处理的
Clipboard类,在此类中它将重试设置,并在这两个设置之间有一个延迟
每次尝试,但如果WPF剪贴板类在上失败,它不会这样做
第一个显示异常发生。即使这样,我们也应该这样做
捕获异常并在异常发生时引发剪贴板操作错误
仍然失败
这篇意大利博客也解释了同样的事情,并提到了一些解决方法-
以下MSDN论坛线程表明,这可能是特定于机器的问题,您可以在其他机器上复制此问题吗-
更新:
博客链接似乎已关闭,但可以通过此链接访问缓存版本-
我的应用程序也有同样的问题。添加了一个DataGrid,它正在显示数据。在我切换到VS2012和.net4.5之前,该应用程序一直运行良好。之后,当我将内容复制到剪贴板时,应用程序崩溃了。对此的回答帮助了我。
System.Runtime.InteropServices.COMException (0x800401D0):
OpenClipboard Failed (Exception from HRESULT: 0x800401D0 (CLIPBRD_E_CANT_OPEN))