2011-07-29 39 views
1

我有一个System.Windows.Controls.Image,它装饰着几个装饰者。现在我想将装饰的图像复制到剪贴板。到目前为止,我有这样的代码行:将装饰图像复制到剪贴板

System.Windows.Clipboard.SetImage(myImage as BitmapImage); 

但是,这只会复制图像本身;不包括装饰者。有没有办法包括装饰者?

编辑:这是我展示如何装饰myImage一些代码:

MyAdorner myAdorner = new MyAdorner(myImage); 
AdornerLayer adornerLayer = AdornerLayer.GetAdornerLayer(myImage); 
adornerLayer.Add(myAdorner); 

MyAdornerSystem.Windows.Documents.Adorner一个子类。我认为执行的具体细节并不重要。

+0

你如何生成装饰者?你能显示一些代码吗? –

+0

我之前没有使用装饰,但从阅读文档看来,UIElement和Adorner之间没有关系。它只需从UIElement获得所需的位置,然后渲染。所以我看到的唯一可能就是截图。上次我检查框架没有提供一个方法来做到这一点,你将不得不做一些互操作调用。 – Stijn

+1

[每个Adorner是一个UIElement](http://msdn.microsoft.com/en-us/library/system.windows.documents.adorner.aspx) – Darcara

回答

1

您需要将图像及其装饰物渲染到RenderTargetBitmap,然后将该位图转换为可添加到剪贴板的图像。

请参阅页面底部的示例,它应该涵盖您需要的所有内容。