首页
学习
活动
专区
圈层
工具
发布
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Vortice 使用 DirectComposition 显示透明窗口

    通过 DirectComposition 配合 WS_EX_LAYERED 窗口样式,可以让窗口高性能地背景透明,完全依靠 DWM 将窗口背景和桌面画面合成 本文是渲染相关系列博客中的一篇,该系列博客已按照逻辑顺序编排...是有比较大的性能代价的,详细请参阅 WPF 从最底层源代码了解 AllowsTransparency 性能差的原因 性能较好的透明窗口实现可参阅 WPF 制作支持点击穿透的高性能的透明背景异形窗口 以上是在...DefWindowProc(hwnd, message, wParam, lParam); } 以上的 WM_NCCALCSIZE 用于声明客户区,通过直接返回 0 告诉系统整个区域都是客户区 透明窗口的实现在窗口创建过程中...使用 AlphaMode.Ignore 和 AlphaMode.Unspecified 参数也是合法的,但是如此就丢失了窗口透明了,不是咱的需求。...,即可渲染出透明窗口 接下来的逻辑就是和 D2D 对接,尝试渲染透明的界面用于测试 对接渲染 由于 D2D 没有什么戏份,本文就只贴出核心代码 using D2D.ID2D1Factory1

    11910

    WPF 已知问题 全屏透明窗口弹出子窗口会闪烁

    在 WPF 中通过设置 WindowStyle 为 None 以及 WindowState 为 Maximized 进入全屏,同时设置 AllowsTransparency 支持透明,此时弹出一个设置...WindowStyle 是 None 的子窗口,用 VisualStudio 2019 运行将会看到 子窗口 先显示出来,然后回到主窗口下面,然后再显示到主窗口上面 其实此问题我没有复现 此问题步骤十分简单...{ }; window.Show(); } 通过 VisualStudio 2019 运行项目,可以看到在点击按钮的时候,先显示了子窗口然后子窗口到主窗口下方...,等一下又回到主窗口上方。...也就是子窗口显示一下然后不显示,可以看到出现闪烁 注意,此时如果没有在 VisualStudio 2019 附加调试,那么不会看到子窗口闪烁 解决方法有两个 第一个方法是去掉主窗口的 AllowsTransparency

    5.4K10

    SharpDx 进入全屏模式 窗口模式设置透明窗口交换链全屏

    ,另一个是交换链进入全屏 窗口模式 和普通的 WPF 窗口差不多,可以在 RenderForm 创建的时候设置进入全屏模式,全屏就是最大化的窗口同时去掉标题栏,隐藏任务栏 在 Windows 只要整个屏幕的所有像素被填充...renderForm.IsFullscreen = true; _renderForm.AllowUserResizing = false; 这样就可以进入全屏,没有标题栏和任务栏 设置透明窗口...在窗口里面可以通过 TransparencyKey 设置某个颜色作为透明颜色,然后通过 AllowTransparency 设置支持透明 _renderForm.TransparencyKey...= Color.Transparent; _renderForm.AllowTransparency = true; 这时画出的透明的颜色就是让窗口透明,透明的部分会命中到后面的元素...和 WPF 的全屏不相同的是,在 SharpDx 里面不会占用屏幕透明的内存,也就是透明部分不需要使用程序进程的内存 交换链全屏 如果开启交换链的全屏,那么窗口透明将无法使用,使用交换链透明,在 Windows

    2.6K30

    HarmonyOS实战:实现任意拖动的应用悬浮窗口

    前言为了增加应用程序功能的丰富性和便利性,很多应用都会提供一个悬浮窗口实现多页面显示。特别是一些性能检测工具,比如 dokit 。在鸿蒙上怎么实现类似的全局悬浮窗口呢?...实现效果需求分析要想实现全局悬浮窗口,必须满足以下几个要求:窗口可以悬浮在任意页面。窗口可以跟随手势拖动。边界处理。技术实现在 ArkUI 中,页面只有 Window 和 View 两种组成。...View 通常都是显示在 Window 中,如果要想实现一个可以在任意页面都能停留显示的悬浮窗,只能通过 window 来实现。...this.contentWindow.destroyWindow(() => { this.contentWindow = undefined })总结通过 window 不仅能实现全局悬浮窗

    56610

    HarmonyOS 开发实践——基于子窗口实现应用内悬浮窗

    场景描述app应用会使用悬浮窗/悬浮球的方式来给用户展示一些应用重要&便捷功能的入口,类似android和iOS应用中常见的应用内可拖拽的悬浮球和小窗口视频悬浮窗,点击悬浮窗修改悬浮窗样式和响应事件跳转页面...应用经常会遇到如下的业务诉求:场景一:通过事件添加和移除悬浮窗,悬浮窗样式可定制(暂定两种,无白边圆球形和小视频播放窗口类型),可代码修改位置和布局。...场景二:创建悬浮窗后,主窗口的系统侧滑返回事件可正常使用。...场景四:悬浮窗内组件事件触发主窗口的页面跳转(Router和Navigation两种都要有)。场景五:悬浮窗的窗口大小自适应组件,子窗口中页面设置了宽高,需要让子窗口自适应页面组件大小。...方案描述场景一:通过事件添加和移除悬浮窗,悬浮窗样式可定制(暂定两种,无白边圆球形和小视频播放窗口类型),可代码修改位置和布局。

    1.4K20
    领券