c# - UIElement 屏幕截图 UWP - C#

标签 c# bitmap win-universal-app screenshot

我在网上搜索,但我没有找到任何解决方案来截取 UWP - 通用 Windows 平台中的 UI 元素(例如位图)。

最佳答案

您可以使用 Render XAML 来位图
一些示例代码在这里:

    // Render to an image at the current system scale and retrieve pixel contents
    RenderTargetBitmap renderTargetBitmap = new RenderTargetBitmap();
    await renderTargetBitmap.RenderAsync(RenderedGrid);
    var pixelBuffer = await renderTargetBitmap.GetPixelsAsync();

    var savePicker = new FileSavePicker();
    savePicker.DefaultFileExtension = ".png";
    savePicker.FileTypeChoices.Add(".png", new List<string> { ".png" });
    savePicker.SuggestedStartLocation = PickerLocationId.PicturesLibrary;
    savePicker.SuggestedFileName = "snapshot.png";

    // Prompt the user to select a file
    var saveFile = await savePicker.PickSaveFileAsync();

    // Verify the user selected a file
    if (saveFile == null)
        return;

    // Encode the image to the selected file on disk
    using (var fileStream = await saveFile.OpenAsync(FileAccessMode.ReadWrite))
    {
        var encoder = await BitmapEncoder.CreateAsync(BitmapEncoder.PngEncoderId, fileStream);

        encoder.SetPixelData(
            BitmapPixelFormat.Bgra8,
            BitmapAlphaMode.Ignore,
            (uint)renderTargetBitmap.PixelWidth,
            (uint)renderTargetBitmap.PixelHeight,
            DisplayInformation.GetForCurrentView().LogicalDpi,
            DisplayInformation.GetForCurrentView().LogicalDpi,
            pixelBuffer.ToArray());

        await encoder.FlushAsync();
    }

示例
https://code.msdn.microsoft.com/windowsapps/XAML-render-to-bitmap-dd4f549f

关于c# - UIElement 屏幕截图 UWP - C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36040165/

相关文章:

c# - 使用 nhibernate 按日期获取记录,仅进行日期部分比较

android - 延迟显示图像在android中使用位图

c# - Windows Phone 8.1 中的 BackButtonPressed 问题?

xaml - Windows UWP Extended 初始屏幕图像在移动设备上的渲染不正确

c# - 使用Win MMDevice API使特定的音频输入静音

C# MVP 模型是什么?

c++ - 如何代表18bit色彩深度到16bit色彩深度?

android - 从 Android 中 .mp4、.3gp 等格式的流视频中获取位图/缩略图?

c# - UWP 未处理的异常仅在 Release模式下

c# - IRepository 和工作单元与预加载