Mah*_*der 9 .net wpf clipboard wpfdatagrid
在我的WPF应用程序中,我使用的是Datagrid
控件; 在控件定义中,我将ClipboardCopyMode
属性定义为'IncludeHeader'.
<DataGrid Name="datagrid" ClipboardCopyMode="IncludeHeader">
</DataGrid>
Run Code Online (Sandbox Code Playgroud)
有时,当我尝试从网格中复制任何数据时,我遇到HRESULT
剪贴板崩溃错误 -
System.Runtime.InteropServices.COMException (0x800401D0):
OpenClipboard Failed (Exception from HRESULT: 0x800401D0 (CLIPBRD_E_CANT_OPEN))
Run Code Online (Sandbox Code Playgroud)
任何解决它的建议.我查看了其他帖子,主要是关于如何在明确使用Clipboard
相关方法时如何处理这种情况,但没有相关的方法Datagrid
.
从Andrew Smith在http://blogs.infragistics.com/forums/t/35379.aspx找到了这个-
从技术上讲,只有1个进程可以打开剪贴板,因此如果另一个进程打开它,后续请求将失败,直到第一个释放剪贴板.这是在WinForms Clipboard类中处理的,它会在每次尝试之间延迟重试该集合,但WPF剪贴板类不执行此操作,因此如果在第一次显示时失败则发生异常.即便如此,如果它仍然失败,我们应该捕获异常并引发剪贴板操作错误.
在这个意大利博客中提到了同样的事情,并提到了一些解决方法 -
以下MSDN论坛帖子表明这可能是机器特定的问题,你能在其他机器上重现吗? -
更新:
博客链接似乎已关闭,但可以通过此链接访问缓存版本 -
WPF DataGrid剪贴板BUG(?)和工作(缓存翻译)
归档时间: |
|
查看次数: |
3484 次 |
最近记录: |