在 Silverlight 3 中截取当前用户控件或任何 GUI 的屏幕截图

Posted

技术标签:

【中文标题】在 Silverlight 3 中截取当前用户控件或任何 GUI 的屏幕截图【英文标题】:Take Screenshot of current user control or any GUI in Silverlight 3 【发布时间】:2011-02-26 10:33:20 【问题描述】:

我想问是否可以通过编程方式截取当前用户控件的屏幕截图并在silverlight 3中另存为文件。

我在 Silverlight 3 中找到了一些方法可以将 Canvas 的图像文件保存为图像文件,但是用户控件或 childwindow 呢?

谢谢,

【问题讨论】:

【参考方案1】:

Writable Bitmap 会让你这么做。查看示例和示例。

【讨论】:

【参考方案2】:

不确定 silverlight 3,但在 4 中是这样完成的:

public static byte[] CreatePngImage(this UIElement element)

    WriteableBitmap screenshot = new WriteableBitmap(element, new TranslateTransform());
    var image =  screenshot.ToImage();
    ImageTools.IO.Png.PngEncoder png = new ImageTools.IO.Png.PngEncoder();

    using (var mem = new System.IO.MemoryStream())
    
        png.Encode(image, mem);
        var bytes = mem.GetBuffer();
        return bytes;
    

ImageTools.IO.Png.dll 的位置here

【讨论】:

以上是关于在 Silverlight 3 中截取当前用户控件或任何 GUI 的屏幕截图的主要内容,如果未能解决你的问题,请参考以下文章

在 Silverlight 中获取当前 Windows 用户名

Silverlight 中的webBrowser控件打开的网页怎么才能加载ActiveX控件

您如何让 Silverlight 调整文本内容的大小以适合?

分析 Silverlight 4

Silverlight:在布局中查找所有类型的控件

在 Silverlight 中检测控件的焦点