You need to enable JavaScript to run this app.
最新活动
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

屏幕截图 Windows.UI.Core.CoreWindow 沉浸式 UWP

要使用屏幕截图功能,并在 UWP 应用程序中实现沉浸式体验,可以按照以下步骤操作:

  1. 在 XAML 页面中添加一个名为 "ImmersiveCanvas" 的 Canvas 控件,用于显示截图。
<Canvas x:Name="ImmersiveCanvas" />
  1. 在代码中引入必要的命名空间:
using Windows.Graphics.Capture;
using Windows.Graphics.DirectX;
using Windows.Graphics.Display;
using Windows.UI.Composition;
using Windows.UI.Core;
using Windows.UI.Xaml.Hosting;
  1. 在页面的构造函数中初始化截图的相关对象:
private CoreWindow coreWindow;
private GraphicsCaptureItem captureItem;
private CompositionGraphicsDevice compositionGraphicsDevice;
private CompositionDrawingSurface drawingSurface;
private CompositionSurfaceBrush surfaceBrush;

public MainPage()
{
    this.InitializeComponent();

    coreWindow = CoreWindow.GetForCurrentThread();
    captureItem = GraphicsCaptureItem.CreateFromVisual(Window.Current.Content);

    var device = Direct3D11Helper.CreateDevice();
    compositionGraphicsDevice = CanvasComposition.CreateCompositionGraphicsDevice(Window.Current.Compositor, device);

    drawingSurface = compositionGraphicsDevice.CreateDrawingSurface(new Size(Window.Current.Bounds.Width, Window.Current.Bounds.Height), DirectXPixelFormat.B8G8R8A8UIntNormalized, DirectXAlphaMode.Premultiplied);

    surfaceBrush = Window.Current.Compositor.CreateSurfaceBrush(drawingSurface);
    surfaceBrush.Stretch = CompositionStretch.None;

    var visual = Window.Current.Compositor.CreateSpriteVisual();
    visual.Brush = surfaceBrush;

    ElementCompositionPreview.SetElementChildVisual(ImmersiveCanvas, visual);

    coreWindow.SizeChanged += CoreWindow_SizeChanged;
}
  1. 添加处理 CoreWindow_SizeChanged 事件的方法,在屏幕尺寸发生改变时更新绘图表面的大小:
private void CoreWindow_SizeChanged(CoreWindow sender, WindowSizeChangedEventArgs args)
{
    drawingSurface.Resize(new Size(coreWindow.Bounds.Width, coreWindow.Bounds.Height));
}
  1. 在需要进行截图的地方,调用下面的方法来获取当前屏幕的截图:
private async void CaptureScreen()
{
    using (var screenBitmap = await GraphicsCapture.CreateSnapshotAsync(captureItem))
    using (var screenBitmapSurface = CanvasComposition.CreateCompositionGraphicsDevice(Window.Current.Compositor, screenBitmap))
    using (var screenBitmapDrawingSurface = screenBitmapSurface.CreateDrawingSurface(screenBitmap.Size, DirectXPixelFormat.B8G8R8A8UIntNormalized, DirectXAlphaMode.Premultiplied))
    {
        using (var ds = CanvasComposition.CreateDrawingSession(screenBitmapDrawingSurface))
        {
            ds.Clear(Colors.Transparent);
            ds.DrawImage(screenBitmap);
        }

        using (var drawingSession = drawingSurface.CreateDrawingSession())
        {
            drawingSession.Clear(Colors.Transparent);
            drawingSession.DrawImage(screenBitmapDrawingSurface);
        }
    }
}

以上步骤中,我们使用了 Windows.Graphics.Capture 命名空间提供的功能来进行屏幕截图,并使用了 Windows.UI.Composition 命名空间提供的功能来实现沉浸式体验。

本文内容通过AI工具匹配关键字智能整合而成,仅供参考,火山引擎不对内容的真实、准确或完整作任何形式的承诺。如有任何问题或意见,您可以通过联系service@volcengine.com进行反馈,火山引擎收到您的反馈后将及时答复和处理。
展开更多
面向开发者的云福利中心,ECS 60元/年,域名1元起,助力开发者快速在云上构建可靠应用

社区干货

精选文章|设计一个“高效”的字节码插桩框架

实现UI活动耗时检测;* Thread、ThreadPoolExecutor构造函数调用替换,实现线程相关性能检测;* 移除Log类相关的函数调用,避免不必要的日志打印行为;等等当重复的进行了一些项目“字节码插桩”的相关插件的开... 比如我们的目标是*在Activity的所有直接子类*的 *onWindowFocusChanged*函数被调用时插入一段代码。 这里以类的继承体系,我们可以提供以下的范围限定。* 某个类自身* 某个类的直接子类* 某个类的所...

「火山引擎」数智平台 VeDI 数据中台产品双月刊 VOL.04

**【新增内部表UI增删字段功能】** - 基于 UI 支持对表增加字段,删除字段。 - 支持 LAS 内表修改表结构,包括增加列、删除列。- **【新增物化视图自动构建功能】** - 支持自动化物化视... =&rk3s=8031ce6d&x-expires=1715012495&x-signature=liIPqAz%2Bx8uWpDsf5RP%2BVgjYMgc%3D)**说明文档链接** : ### **云原生数据仓库ByteHouse****【查询优化器】** ByteHouse 从零开始自研的了查询优化器,在实...

万字长文带你弄透Transformer原理|社区征文

#### step2:计算attention score​  得到这些$q$、$k$、$v$ 后,我们会分别用q去乘每一个$k^T$得到一个数值$a_{ij}$,即用$q_1分别乘k_1^T、k_2^T、k_3^T$;$q_2分别乘k_1^T、k_2^T、k_3^T$;$q_3分别乘k_1^T、k_2... spm_id_from=333.1007.top_right_bar_window_history.content.click&vd_source=12c43aedc12b9cf10b775c0015015b86)🍁🍁🍁>> 2、[台大李宏毅21年机器学习课程 self-attention和transformer](https://www.bilibili...

10 个问题带你了解 Compose Multiplatform 1.0 |社区征文

Desktop(Windows, macOS, LInux)以及 Web 等多端的应用程序,工程中可以实现大部分代码的共享以此达到跨平台开发的目的。![image.png](https://p1-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/98358f3c32dc4892ad5e... 他们可以使用熟悉的语言更高效地开发包含 UI 的应用程序,像 JetBrains 这样的 IDE 公司就属于后者,他们迫切希望使用 Compose 替换 Swing 和 AWT 等基于 Java 的陈旧的技术栈,这也正是 compose-desktop 诞生的初衷。...

特惠活动

热门爆款云服务器

100%性能独享,更高内存性能更佳,学习测试、web前端、企业应用首选,每日花费低至0.55元
60.00/1212.00/年
立即购买

域名注册服务

cn/top/com等热门域名,首年低至1元,邮箱建站必选
1.00/首年起32.00/首年起
立即购买

DCDN国内流量包100G

同时抵扣CDN与DCDN两种流量消耗,加速分发更实惠
2.00/20.00/年
立即购买

屏幕截图 Windows.UI.Core.CoreWindow 沉浸式 UWP-优选内容

客户端 SDK
2023 年 10 月云手机 Windows 客户端 SDK V1.0.0 正式发布。详细信息,参考 云手机 Windows 客户端 SDK 接入文档。 2023 年 8 月云手机客户端 SDK V1.27.0 的发布说明如下: AndroidAndroid 端 SDK 包含以下新增功能... 2023 年 6 月云手机客户端 SDK V1.25.0 的发布说明如下: AndroidAndroid 端 SDK 包含以下新增功能和变更: 更新 “云手机画面截图” 接口(screenShot)行为:截图的图片格式由 .png 格式改为 .jpg 格式;当云手机存储...
精选文章|设计一个“高效”的字节码插桩框架
实现UI活动耗时检测;* Thread、ThreadPoolExecutor构造函数调用替换,实现线程相关性能检测;* 移除Log类相关的函数调用,避免不必要的日志打印行为;等等当重复的进行了一些项目“字节码插桩”的相关插件的开... 比如我们的目标是*在Activity的所有直接子类*的 *onWindowFocusChanged*函数被调用时插入一段代码。 这里以类的继承体系,我们可以提供以下的范围限定。* 某个类自身* 某个类的直接子类* 某个类的所...
「火山引擎」数智平台 VeDI 数据中台产品双月刊 VOL.04
**【新增内部表UI增删字段功能】** - 基于 UI 支持对表增加字段,删除字段。 - 支持 LAS 内表修改表结构,包括增加列、删除列。- **【新增物化视图自动构建功能】** - 支持自动化物化视... =&rk3s=8031ce6d&x-expires=1715012495&x-signature=liIPqAz%2Bx8uWpDsf5RP%2BVgjYMgc%3D)**说明文档链接** : ### **云原生数据仓库ByteHouse****【查询优化器】** ByteHouse 从零开始自研的了查询优化器,在实...
万字长文带你弄透Transformer原理|社区征文
#### step2:计算attention score​  得到这些$q$、$k$、$v$ 后,我们会分别用q去乘每一个$k^T$得到一个数值$a_{ij}$,即用$q_1分别乘k_1^T、k_2^T、k_3^T$;$q_2分别乘k_1^T、k_2^T、k_3^T$;$q_3分别乘k_1^T、k_2... spm_id_from=333.1007.top_right_bar_window_history.content.click&vd_source=12c43aedc12b9cf10b775c0015015b86)🍁🍁🍁>> 2、[台大李宏毅21年机器学习课程 self-attention和transformer](https://www.bilibili...

屏幕截图 Windows.UI.Core.CoreWindow 沉浸式 UWP-相关内容

Windows

火山引擎 RTC 提供了开源示例项目 API Example Demo。获取该项目后,你可以参照本文进行跑通,体验实时音视频功能;也能通过阅读代码,了解最佳实践。 前提条件在开始集成 RTC SDK 前,请确保满足以下要求: Windows 7 或... window.cpp ├── mainwindow.h ├── mainwindow.ui └── resources.rc配置示例项目在控制台上获取 AppID 和 AppKey,并将其分别填入 src/Public/Config.h 中的 g_appid 和 g_appkey。请正确填写信息...

iOS 优化 - 启动优化 |社区征文

比如`UIKit`等,位于`/System/Library/Caches/com.apple.dyld/dyld_shared_cache_armX`,X 为 ARM 处理器指令集架构。 * 实例化主程序。 这一步将主程序的 `Mach-O` 加载进内存,并实例化一个 `ImageLoad... 选择 `Xcode —> Window —> Organizer`,在左侧菜单栏选择 `Launch Time` 项查看线上用户 APP 的启动耗时数据,这种方式主要看线上用户整体启动耗时区间分布情况;![app_launch_performance_xcode_organizer](htt...

Android Sample(v4.1.0.0及以上)

Sample总体结构├── algorithm //基础算法模块├── app // 首页├── ar // AR模块├── avatar // Avatar模块├── build.gradle├── ck // ├── common // 通用工具封装├── core // SDK调用封装├... Core.java│ ├── VideoReSampleList.java│ ├── VideoSourceImpl.java│ └── WindowSurface.java├── model // 数据模型│ ├── BubbleConfig.java│ ├── ButtonItem.java│...

热门爆款云服务器

100%性能独享,更高内存性能更佳,学习测试、web前端、企业应用首选,每日花费低至0.55元
60.00/1212.00/年
立即购买

域名注册服务

cn/top/com等热门域名,首年低至1元,邮箱建站必选
1.00/首年起32.00/首年起
立即购买

DCDN国内流量包100G

同时抵扣CDN与DCDN两种流量消耗,加速分发更实惠
2.00/20.00/年
立即购买

iOS (Objective-C)

buildUI{ self.view.backgroundColor = [UIColor whiteColor]; UIEdgeInsets edgeInsets = UIEdgeInsetsZero; if (@available(iOS 11.0, *)) { edgeInsets = [UIApplication sharedApplication].keyWindow.safeAreaInsets; } [self.view addSubview:self.headerView]; [self.headerView mas_makeConstraints:^(MASConstraintMaker *make) { make.top.mas_equalTo(edgeInsets.top); ...

插件说明

veplayer.registerPlugin(window.VePlayerTimeShift) })禁用插件VePlayer 内置了一些常用的功能插件。如您需要禁用某个内置插件,可以使用以下方法。 对于大部分插件,您可以将插件名称(不区分大小写)传入 VePlayer 配置项的 ignores 属性来进行禁用。以禁用画中画插件为例,代码示例如下所示。 javascript ignores: ['pip'] 对于部分插件,您也可以通过插件的配置项实现禁用。详情请参见含 UI 的内置插件。 配置插件VePlayer...

Windows

请确保满足以下要求: Windows 7 或以上版本设备,且可以正常访问互联网 Microsoft Visual Studio 2017 或以上版本 Qt 5.9 或以上版本,且 Qt 与 VS 版本对应 在 Visual Studio 中安装 Qt 扩展,详细操作参看如何在... \VolcEngineRTC\lib\Win32 或 $(SolutionDir)\VolcEngineRTC\lib\x64。 选择配置属性 > 链接器 > 输入,在附加依赖项下拉列表中选择 <编辑...>,然后追加 VolcEngineRTC.lib。 选择配置属性 > 生成事件 > 生成后...

一个大龄程序猿2022年的开发故事|社区征文

然后着手公司pc端:vue2+elementui,微信端h5:vue2+vant, 然后android app webview嵌套 vue2+vant,期间也接触了一个react项目 - 2021年年初开始走上,vite+vue3+echarts大屏项目,相对于熟悉了解了vue2后,直接用v... 我是通过根据window.navigator.userAgent.toLowerCase() 先判断其中是否包含 'miniprogram',有则代表是在微信小程序中,再判断是否包含'micromessenger',有则代表是在微信环境中,这样针对每个环境去设置不同的key,然...

SDK 概览

火山引擎-云手机为您提供对接云手机-云原生PaaS服务的客户端 SDK,支持 Android、iOS、Web/H5 和 Windows 终端接入。vePhoneSDK 提供了丰富的接口,帮助开发者快速搭建实例开始自己的业务。 SDK 名称:云手机 SDK(veP... 云手机客户端 SDK V1.25.0 的发布说明如下: Android Android 端 SDK 包含以下新增功能和变更: 更新 “云手机画面截图” 接口(screenShot)行为:截图的图片格式由 .png 格式改为 .jpg 格式;当云手机存储空间小于600M...

SDK集成

*)URLContexts { for (UIOpenURLContext *context in URLContexts) { NSURL *URL = context.URL; if ([[BDAutoTrackSchemeHandler sharedHandler] handleURL:URL appID:@"appid" scene:scene]) { continue; } /// …… }}Swift swift import RangersAppLogfunc application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey : Any] = [:]) -> Boo...

特惠活动

热门爆款云服务器

100%性能独享,更高内存性能更佳,学习测试、web前端、企业应用首选,每日花费低至0.55元
60.00/1212.00/年
立即购买

域名注册服务

cn/top/com等热门域名,首年低至1元,邮箱建站必选
1.00/首年起32.00/首年起
立即购买

DCDN国内流量包100G

同时抵扣CDN与DCDN两种流量消耗,加速分发更实惠
2.00/20.00/年
立即购买

产品体验

体验中心

云服务器特惠

云服务器
云服务器ECS新人特惠
立即抢购

白皮书

一图详解大模型
浓缩大模型架构,厘清生产和应用链路关系
立即获取

最新活动

爆款1核2G共享型服务器

首年60元,每月仅需5元,限量秒杀
立即抢购

火山引擎增长体验专区

丰富能力激励企业快速增长
查看详情

数据智能VeDI

易用的高性能大数据产品家族
了解详情

一键开启云上增长新空间

立即咨询