how to capture part of the screen in Silverlight

2019-04-12 01:42发布

问题:

i want to do a screen capture of a running silverlight 3 application, from within the app, and then i want to present this to the user as a thumbnail, say in an Image control.

am i dreaming?

回答1:

For a simple page:

<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>

with the event handler:

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


回答2:

You are dreaming if you want to do a true screen capture (outside the plugin).

The WriteableBitmap answer is correct if you just want to capture a partial or complete visual tree rendering of the Silverlight app only.