gpt4 book ai didi

c# - DataGrid 复制到带有样式的剪贴板

转载 作者:太空宇宙 更新时间:2023-11-03 13:10:11 34 4
gpt4 key购买 nike

我有一个带有一堆 DataGridTextColumn 列的 WPF DataGrid。其中一些 CellStyle 属性设置为自定义样式,带有 元素,可根据单元格的值设置单元格的背景颜色。

看起来选择一行并按 Ctrl-C 只会将单元格文本复制到剪贴板,而不是颜色。因此,将其粘贴到 OneNote 等程序会生成一个带有黑色文本的表格,并且不会复制任何背景色。

有没有办法同时启用样式的复制?

谢谢。

最佳答案

不幸的是,您必须自己编写一些东西。

这是 source对于处理 ApplicationCommands.Copy 的代码对于 DataGrid,第 8252 行是实现复制的所有格式。

Collection<string> formats = new Collection<string>(new string[] { DataFormats.Html, DataFormats.Text, DataFormats.UnicodeText, DataFormats.CommaSeparatedValue });

并且从 visualstudio 即时窗口输出我们可以看到 ApplicationCommands.Copy 在 DataGrid 上的结果。

Clipboard.GetDataObject().GetFormats()
[0]: "CSV"
[1]: "Text"
[2]: "UnicodeText"
[3]: "System.String"
[4]: "HTML Format"

其中只有 HTML 具有任何样式功能,但截至目前 code仅实现它以创建 HTML 表格。

但是您可以覆盖 DataGrid.OnExecutedCopy并以支持自己设计样式的格式实现复制。

关于c# - DataGrid 复制到带有样式的剪贴板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29185346/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com