如何在Silverlight中捕获屏幕的部分

3
我想在Silverlight 3应用程序内部进行屏幕截图,并将其作为缩略图呈现给用户,比如在一个图像控件中。请问这是否可行?
2个回答

5

对于一个简单的页面:

<Grid x:Name="LayoutRoot" Background="White">
    <StackPanel>
        <Ellipse Fill="Red" Width="100" Height="100"></Ellipse>
        <Button x:Name="btnCapture" Click="btnCapture_Click" Width="30" Height="25"></Button>
        <Image x:Name="imgThumbnail" Width="50" Height="50"></Image>
    </StackPanel>
</Grid>

使用事件处理程序:

    private void btnCapture_Click(object sender, RoutedEventArgs e)
    {
        WriteableBitmap bmp = new WriteableBitmap(LayoutRoot, null);
        this.imgThumbnail.Source = bmp;
    }

这对于使用案例非常有效;非常感谢你的贡献,Ryan。 - unknown
小的后续问题,假设我想以电影的方式记录屏幕上正在发生的事情,然后将其播放回给用户...应该如何实现? - vondip

0

如果你想要进行真正的屏幕截图(插件外部),那么你是在做梦。

如果你只想捕获 Silverlight 应用程序的部分或完整的可视树渲染,那么 WriteableBitmap 的答案是正确的。


是的,我希望沙盒可以防止屏幕截图工具从Silverlight实例中爬出来。但我只需要能够捕获我的Silverlight显示的一部分,所以另一个答案也可以很好地解决问题。谢谢; - unknown

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接