如何在Windows Phone 8.1 SDK中以编程方式捕获屏幕?

gre*_*ics 5 c# windows-phone windows-phone-8.1

任何想法如何从代码中捕获SDK 8.1 windows手机中的屏幕?对于Windows Phone 7.5我已经看过代码并试图使用,但它失败了.:(

Mat*_*cey 6

您可以使用a RenderTargetBitmap并将其传递给表示页面的FrameworkElement,然后从中呈现位图.

private async Task<RenderTargetBitmap> CreateBitmapFromElement(FrameworkElement uielement)
{
    try
    {
        var renderTargetBitmap = new RenderTargetBitmap();
        await renderTargetBitmap.RenderAsync(uielement);

        return renderTargetBitmap;
    }
    catch (Exception ex)
    {
        System.Diagnostics.Debug.WriteLine(ex);
    }

    return null;
}
Run Code Online (Sandbox Code Playgroud)

尝试类似的东西:

private async void ButtonBase_OnClick(object sender, RoutedEventArgs e)
{
    this.imagePreview.Source = await CreateBitmapFromElement(this);
}
Run Code Online (Sandbox Code Playgroud)

页面上的XAML是:

<Grid x:Name="controlsGrid">
    <Button Click="ButtonBase_OnClick">take screenshot</Button>
    <Image x:Name="imagePreview"
           Height="200" VerticalAlignment="Bottom"
           Stretch="UniformToFill" />
</Grid>
Run Code Online (Sandbox Code Playgroud)