HWND 子级的 WPF 渲染问题

2024-05-08

我想可以肯定地说 WPF 将其内容呈现为窗口背景。不存在传统 HWND 意义上的子窗口。因此,当人们在 WPF 应用程序中引入基于 HWND 的东西(例如 Web 浏览器)时,视觉外观方面的事情就开始出错。

考虑一个窗口有一个带有两个子项的网格、WebBrowser 和其他东西,例如文本框。如果 WebBrowser 是一个红色圆圈,则文本框将呈现在其顶部。对于 WebBrowser,在任何地方都找不到 TextBox。这是因为 TextBox 被渲染为主窗口的背景,而 WebBrowser 实际上是主窗口的 HWND 子窗口,遮挡了背景。

所以一切都(不)很好。一个人如何实现期望的行为?我想让 TextBox 在 WebBrowser 之上呈现。有人遇到过这个问题吗?

我正在考虑拥有第二个透明的顶级无边框 WPF 窗口,重新设置它的父级,以便主窗口拥有它,并执行一些其他技巧来实现它。

在深入研究之前,我想知道是否有人有一个明显或更简单的解决方案?


由 Melak 更新

我向任何可以发布 Ray Burns Answer 实施的人提供此赏金AirRepair。我自己尝试过但没有成功


通读一下WPF 互操作:“空域”和窗口区域概述 http://msdn.microsoft.com/en-us/library/aa970688.aspx.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

HWND 子级的 WPF 渲染问题 的相关文章

随机推荐

  • 无法使用include_graphics在Rmarkdown中插入png(错误:文件不是PNG格式)

    这个错误很奇怪 当我编织文档时 出现以下错误 Quitting from lines 42 43 sigminer doc Rmd Error in png readPNG path native TRUE info TRUE file i
  • INET6_ATON 的替代 MySQL 代码

    将旧的 INET ATON 值转换为新的二进制 INET6 ATON 值 无需 INET6 ATON INET6 NTOA 我们在表中已有数据 字段类型为UNSIGNED INT其中保存了使用以下命令创建的 IPv4 数据INET ATON
  • ERROR 188 (HY000): FTS 查询超出结果缓存限制 mysql

    我的表的文本列上有全文索引 约有 1100 万行 表结构 CREATE TABLE review id int 11 NOT NULL AUTO INCREMENT comments text COLLATE utf8mb4 unicode
  • 多个 Nodejs 应用程序的单点登录

    我们有 3 个 Nodejs Web 应用程序 在具有多个子域的同一 vps 上的同一域名上运行 并为每个应用程序实现护照身份验证 我们希望单个用户能够使用单个帐户访问所有应用程序 因此我们仅出于帐户管理的目的添加了accounts exa
  • 如何在 Django 管理 UI 的文本区域中保留空行?

    我在一个对象上有一个字段 我使用 Django 3 2 管理 UI 中的文本区域来渲染它这段代码 https stackoverflow com a 431412 就像是 class MyObject models Model some t
  • IPV6 Curl POST 请求

    在 IPV6 中 如何使用 IPV6 地址和端口号构建 CURL POST http 请求 任何类型的线程都将受到赞赏 尝试构建如下请求 gt curl interface http 2001 0 db8 1111 0 0 0 11 809
  • 为什么 UIScrollView 在顶部留有空间并且不滚动到底部

    我是 Objective C 编程新手 我正在使用 UIScrollView 及其上的一些标签 图像和文本视图 我已关闭自动布局 并已尝试打开 调整滚动视图插图 标题中描述的情况 和关闭 不滚动 这是我插入 viewDidLoad 的内容
  • Play 框架 2.0:在 Http.Context 中存储值

    我正在尝试在 Play 框架中的 scalaquery 中实现 基于请求 的会话 我使用 scalaquery 创建一个会话 并尝试将其存储在当前的 http 上下文中 如下所示 def withTransaction A bp BodyP
  • 如何将“重要”添加到 zIndex

    我网站上的某些附加组件之间存在冲突 使用 Firebug 我注意到如果我将 important 添加到 z 索引 我可以避免冲突 但 z index 值是使用 JavaScript 设置的 而不是 CSS 那么如何在以下 JS 代码中添加
  • C# 编译器如何删除发布版本中的 Debug.Assert?

    我最近正在浏览一些代码 并考虑是否需要小心放置在其中的表达式Debug Assert语句 例如昂贵的操作或具有副作用的操作 然而 编译器似乎非常聪明地完全删除了Assert陈述和内在表达 例如 以下内容只会在调试版本上打印 static v
  • 如何在 Silverstripe CMS 中使用 JavaScript?

    我正在使用 SilverStripe 3 0 CMS 并且我需要将 Google 地图包含到 CMS 中 我正在跟进这一步 http www silverstripe org general questions show 14596 pos
  • 有没有一种方法可以通过对一列求和并基于另一列来提取数据

    我正在尝试按帐户按月汇总金额 并将结果按帐户显示在另一个单元格中 AND E1 gt MONTH E1 E8 SUMPRODUCT F 1 F 8 gt MONTH E1 E8 6 D 1 F 8 D1 gt 0 6 Account Amo
  • 在python中访问超级(父)类变量

    我是Python新手 我尝试使用 super 方法访问子类中的父类变量 但它抛出错误 无参数 使用类名访问类变量是可行的 但我想知道是否可以使用 super 方法访问它们 class Parent object props a str a
  • 如何在 EF Core 3 中启用日志记录?

    我正在使用 Entity Framework Core 3 Preview 5 和 ASP NET Core 3 Preview 5 在 Visual Studio 2019 的调试输出窗口中 我没有从 EF Core 获取任何日志 我阅读
  • Azure DevOps/VSTS Build - 在 BUILD BUILDNUMBER 中找不到版本号数据

    设置一个简单的类库来构建并发布到 VSTS 自己的源时 我在 NuGet 包运行时看到此错误 在 BUILD BUILDNUMBER 中找不到版本号数据 我勾选了 使用版本号来版本包 选项 预计 VSTS 能够正常工作 使用内部版本号来版本
  • PHP 准备语句转义的清晰性

    我知道这是一个非常受欢迎的问题 并且已经研究了很多小时 我仍然对明确的答案有点不确定 我不是 PHP 专业人士 并且已经自学了一段时间 我最近刚刚了解 MYSQLi 准备好的语句 已经习惯了旧的做法 我的主要问题是试图找到关于在使用准备好的
  • 连接两列之间的排列

    我需要有关 Excel 作业的帮助 Name City John London Maxx NY Ashley DC Paris 解决这个问题的方法必须是 John london John NY John DC John Paris Maxx
  • 内置魔术变量名称/属性

    背景 对于不熟悉的人来说 崇高的文字 http sublimetext com 和 TextMate 通过以下定义的范围提供语法突出显示和其他功能 tmLanguage语言定义文件 基本上是一堆正则表达式 用于识别给定语言中的各种构造 例如
  • 带有 Firebird 的 .NET 实体框架:UTF-8 数据库出现错误“超出实现限制。块大小超出实现限制”

    我将 Firebird ADO NET 提供程序版本 5 5 与实体框架 5 结合使用 对于 Firebird UTF 8 数据库 带有投影的 LINQ to SQL 查询 包括有条件地将字符串属性设置为常量 会导致错误 超出实现限制 块
  • HWND 子级的 WPF 渲染问题

    我想可以肯定地说 WPF 将其内容呈现为窗口背景 不存在传统 HWND 意义上的子窗口 因此 当人们在 WPF 应用程序中引入基于 HWND 的东西 例如 Web 浏览器 时 视觉外观方面的事情就开始出错 考虑一个窗口有一个带有两个子项的网