首页 / 知识
WindowsFormsHost是否适合目的(.net WPF托管WinForms)?
2023-04-14 19:29:00

Is WindowsFormsHost fit for purpose (.net WPF hosting WinForms)? GUI驱动的应用程序需要托管一些基于WinForms的预构建组件。 商业应用程序可以将WPF用于其GUI并依靠WindowsFormsHost托管WinForms组件吗? 我们当前在软件中使用WindowsFormsHost来托管WinForms DataGridView控件,并且它没有任何实际问题。不过要注意以下几点: 第一个是空域限制。实际上,这意味着WinForms内容总是出现在WPF内容之上。因此,如果您使用的是WPF装饰器,则当它们与您应用程序中的WinForms区域碰撞时,它们将被"修剪"。 第二个原因是,由于它们使用Windows资源,因此您必须更仔细地管理WinForms组件的生存期。与WPF组件不同,WinForms控件需要在完成后才进行处理。这使得将它们包含在纯XAML视图中变得很棘手。 最后一件事是WinForms控件的调整大小似乎不如WPF显示的其余部分平滑:一旦完成调整,它们往往会捕捉到新的大小。 我遇到的一个问题是嵌入式Win Forms控件不参与应用于其WPF容器的任何转换操作。这会导致视觉闪烁效果,并且嵌入式控件会出现在不适当的位置。我通过将Windows Forms Host的可见性绑定到其WPF容器的动画状态来解决此问题,以便隐藏嵌入式控件,直到动画完成为止,如下所示。
您可以使用.net 3.5 SP1解决空域问题:
请参阅D3DImage简介。 正如@Kent Boogaart所述,我遇到了以下情况:WinForms中托管的WPF应用程序没有WPF应用程序对象(即Application.Current)。这可能会导致许多问题,例如分派器无法将线程调用回UI线程。仅当您在WinForms中托管时才适用,反之则不然。 我还遇到了模式对话框的奇怪问题(即ShowModal调用)。我假设这是因为,在WinForms中,每个控件都有其自己的Win32句柄,而在WPF中,整个Window只有一个句柄。 无论做什么,请测试:) 请注意在Winforms中托管时不存在WPF 我在WinForms中托管了WPF控件,反之亦然。但是,我将广泛测试此类情况,因为很难预测复杂的控制方式。 |
最新内容
相关内容
复制项目的linux命令?
复制项目的linux命令?,系统,项目,文件,命令,目录,源文件,语法,选项,目标,功能,在Linux操作系统中复制文件或目录时使用的命令是()。1、在Linuxlinux部署项目的命令?
linux部署项目的命令?,项目,系统,设备,环境,工作,基础,传播,信息,标准,代码,Linux部署springBoot项目并且查看控制台日志指定路径:如下: /data/wlinux编译项目的命令?
linux编译项目的命令?,系统,工作,地址,软件,工具,信息,代码,项目,命令,环境,linux能否用命令行编译keil1、.编译软件用sdcc 2.sdcc不支持keil51clinux安装组件包命令?
linux安装组件包命令?,软件,官网,服务,系统,工具,发行,工作,信息,名称,命令,Linux安装软件的命令是什么?1、最后依次输入以下命令:./configurelinux命令和应用程序?
linux命令和应用程序?,软件,系统,环境,管理,基础,情况,位置,电脑,工具,中心,在linux下如何装应用程序?需要什么命令啊首先从官网下载hdf5,根据哪些人适合学习Python课程?
哪些人适合学习Python课程?,技术,基础,企业,人工智能,中国,缺口,巨头,工资,5G,工作,说到编程语言,很多人都会想到Python。毕竟近些年Python的流为什么Python适合作为第一个学习的
为什么Python适合作为第一个学习的编程语言?,分析,网站,工作,数据,系统,人工智能,公司,工具,流程,金融,Python语言设计的初衷就是容易上手。适合转行学习python的职业
适合转行学习python的职业,工作,基础,人员,时间,地图,工具,发展,人工智能,技术,网站,Python是一种简单的编程语言。很多没有编程经验或者对编用于业余项目的优秀 Python 库
用于业余项目的优秀 Python 库,数据,工具,项目,信息,培训,系统,地图,下来,工作,管理,1.在数据库中即时保存数据:Dataset当我们想要在不知道最python适合小白学吗?
python适合小白学吗?,工作,时间,发展,下来,人工智能,培训,人员,语言,以后,方面,随着互联网的迅速发展,python逐渐成为一门重要的语言,当今时代python为什么不适合web开发
python为什么不适合web开发,平台,培训,一致,环境,代码,技术,业务,性能,虚拟机,进程,python不适合web开发的原因:1、性能堪忧。写个httpserverPython可以做桌面应用程序吗
Python可以做桌面应用程序吗,平台,系统,较大,标准,培训,界面,桌面,文档,入门,开发者,python可以做桌面应用程序!目前比较主流的几个GUI平台:1