WindowsFormsHost 是否适合用途(.net WPF 托管 WinForms)?

2023-11-25

GUI 驱动的应用程序需要托管一些基于 WinForms 的预构建组件。 这些组件使用 GDI+ 和 DirectX 的组合提供高性能交互式视图。 视图处理控制输入并显示自定义图形渲染。 供应商在 WinForms 线束中对组件进行测试。

商业应用程序可以使用 WPF 作为其 GUI 并依赖Windows窗体主机托管 WinForms 组件或 您是否经历过技术故障,例如输入滞后、更新问题会让您谨慎吗?


目前,我们在软件中使用 WindowsFormsHost 来托管 WinForms DataGridView 控件,并且没有遇到任何实际问题。但有几点需要注意:

第一个是空域限制。实际上,这意味着 WinForms 内容始终出现在 WPF 内容之上。因此,如果您使用 WPF 装饰器,当它们遇到应用程序中的 WinForms 区域时,它们看起来会被“修剪”。

第二个是,因为它们使用 Windows 资源,所以您必须更仔细地管理 WinForms 组件的生命周期。与 WPF 组件不同,WinForms 控件期望在使用完毕后被释放。这使得将它们包含在纯 XAML 视图中变得很棘手。

最后一件事是,WinForms 控件似乎不像 WPF 显示的其余部分那样平滑地调整大小:一旦完成调整,它们往往会捕捉到新的大小。

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

WindowsFormsHost 是否适合用途(.net WPF 托管 WinForms)? 的相关文章

随机推荐

  • 在 emacs 中将预处理器指令缩进为 C 代码

    默认情况下 Emacs 不缩进预处理器代码 我知道它有历史根源 但现在已经过时了 然而 具有大量未缩进的 ifdef 的代码很难阅读 所以我想让 emacs 自动缩进给我类似的东西 void myfunc int foo ifdef BAR
  • Python mysql.connector InternalError:关闭游标时发现未读结果

    我想从光标读取部分结果 然后关闭它而不读取所有结果 cursor close raises InternalError Unread result found 是否可以关闭游标而不迭代所有结果或使用缓冲选项 Update 我的查询得到大约
  • Visual Studio Code 无法使用“code”命令打开

    当我尝试从命令行打开 VSCode 时code 我收到错误 MacOS Electron No such file or directory 我怎样才能解决这个问题 如果您遇到以下错误 usr local bin code line 6 u
  • 在同一个 UI 中使用 QVTKWidget 和 QOpenGLWidget?

    我正在开发一个使用自定义子类的项目QOpenGLWidget显示一些效果图 结束时paintGL 它调用小部件的方法update 方法触发重绘事件 如果它可见 现在我想添加一个额外的QVTKWidget到我的用户界面 我通过使用这样的东西来
  • 在条形图中设置轴标签和刻度线的不同位置

    我想重新对齐 偏移条形图的 x 轴和相关刻度线 这应该很简单 但我很难找到答案 下面是一些包含 24 个类别的示例数据 xval c 1 24 count c 0 03 0 03 0 08 0 06 0 11 0 4 0 3 0 5 0 5
  • 为什么 Safari 不接受 GZIP 压缩?

    我这里有一个相当大的 JavaScript 文件 我想将其嵌入到我的网站中 HTTP 服务器足够智能 可以在将文件传送到浏览器之前对其进行 GZIP 不过 我用 Google Chrome 和 Safari 进行了测试 在 Chrome 上
  • spring TransactionTemplate 和 SimpleJdbcTemplate 是线程安全的吗?

    我目前正在处理的代码中 有一个单例被许多线程使用 除了 TransactionTemplate 和 SimpleJdbcTemplate 的两个字段之外没有状态 这两个字段在单例的函数中用于访问数据库 这安全吗 还是我应该在需要时创建一个新
  • ./ 和 ~/ 之间的区别

    创建文件路径和 URL 时 我注意到很多时候路径以 or 以以下开头的文件路径有什么区别 and 它们各自的含义是什么 为了完整起见 Just path是一个名为的文件或目录path在当前目录中 path是一个名为的文件或目录path在当前
  • 如何更新 Rails 语言环境 YML 文件而不丢失注释和变量?

    我正在构建一个 Ruby 脚本来更改 config locales yml Rails 语言环境文件的内容 这些文件包含许多有用的注释和变量 通过加载 更新和转储它们 我丢失了这些注释和变量 如何以编程方式更新 YAML 文件 同时保留注释
  • 分支在 ?: 运算符?

    对于现代硬件上的典型现代编译器 运算符结果会产生影响指令管道的分支吗 换句话说 调用这两种情况以避免可能的分支 哪个更快 bool testVar someValue Used later purge white purge black 或
  • 如何隐藏 Html 日历面板中的年份部分?

    有没有办法隐藏年份部分 html 日历面板 只显示日历上的月份和日期部分 不幸的是 没有简单的答案 但是您可以使用替代方法 通过使用 JavaScript 强制用户仅输入月份和日期 var year new Date getFullYear
  • 按 ID 删除数百万行的最佳方法

    我需要从 PG 数据库中删除大约 200 万行 我有一个需要删除的 ID 列表 然而 我尝试做到这一点的任何方法都需要几天的时间 我尝试将它们放入表中并以 100 为一批进行操作 4 天后 该操作仍在运行 仅删除了 2972 68 行 我必
  • 带有数字和默认键盘的 UITextField

    为 邮政编码 邮政编码 字段创建了一个 UITextField 其键盘类型为 UIKeyboardTypeDefault 我想使用默认键盘 但希望默认显示数字和符号与字母相对应 当您在 Contacts app 中输入地址时 Apple 会
  • 使用 crontab 运行脚本时无法导入 Python MySQL 模块

    我正在使用 crontab 运行需要 MySQLdb 模块的 python 脚本 当我从命令行运行此脚本时 一切正常 但是 尝试使用 crontab 运行它会引发此错误 Traceback most recent call last Fil
  • Apple 的文本渲染如何绘制字体没有的字形?

    我对字体和编码有了基本的了解 但最近我不得不在我的舒适区之外做一些事情 转动字符 0x2716 重乘 x 变为CGPathRef 我使用了核心文本CTFontGetGlyphsForCharacters来完成这项工作 我明白 一个CGGly
  • 无法将不可变值作为 inout 参数传递:文字不可变,为什么?

    我想做一个函数来交换两个变量 但对于新的 swift 我不能使用 var import UIKit func swapF inout a Int inout with b Int print x a and y b a b b a prin
  • 如何在 Symfony 2 中通过伪造登录来测试 ACL 进行开发

    我正在开发基于 Symfony 2 的 Web 应用程序的一部分 与许多应用程序一样 需要身份验证和授权 我如何继续开发 通过传递或伪造登录来考虑 ACL 在文档中 login check身份验证和会话部分是否透明 我想我可能需要实现一个版
  • 用于调整窗口大小的自定义挂钩

    我正在创建一个自定义挂钩来捕获浏览器窗口大小 以便让我知道它是否是移动的 目前 我的问题是 React 告诉我它无法在 useEffect 挂钩中保留 screenSize 的变量值 我该如何解决这个问题 export default fu
  • 如何在 python 中进行 alpha 抠图

    如何在 python 中进行 alpha 抠图 更具体地说 如何提取图像的 alpha 通道 给定一个将像素标记为 100 前景 白色 100 背景 黑色 或未知 灰色 输入图像 输入三元图 使用库进行 alpha 抠图 这里有两个选项 都
  • WindowsFormsHost 是否适合用途(.net WPF 托管 WinForms)?

    GUI 驱动的应用程序需要托管一些基于 WinForms 的预构建组件 这些组件使用 GDI 和 DirectX 的组合提供高性能交互式视图 视图处理控制输入并显示自定义图形渲染 供应商在 WinForms 线束中对组件进行测试 商业应用程