如何在WPF中嵌入Winform控件

如何在WPF中嵌入Winform控件,第1张

当时把WPF的控件canvas的handle传给C++的项目去刷新图像的时候发现最后刷新的是整个WPF页面而不是控件所在的区域,还不知道有什么办法可以解决。
不过可以在WPF中嵌入WINFORM的图像控件PictureBox去做刷新。
嵌入方法:
1在项目的References中加入WindowsFormsIntegrationdll和SystemWindowsFormdll
2在页面的WPF中加入
[csharp] view plain copy
xmlns:wfi ="clr-namespace:SystemWindowsFormsIntegration;assembly=WindowsFormsIntegration"
xmlns:wf ="clr-namespace:SystemWindowsForms;assembly=SystemWindowsForms"
比如
[csharp] view plain copy
x:Class="WpfApplication1MainWindow"
xmlns:wfi ="clr-namespace:SystemWindowsFormsIntegration;assembly=WindowsFormsIntegration"
xmlns:wf ="clr-namespace:SystemWindowsForms;assembly=SystemWindowsForms"
xmlns=">Unity3D中所使用的编程语言有三种:C#,JS和BOO。同时自带了免费的编辑器,然而在windows下,编辑器还是VS最强大,所以本文就探讨如何配合Unity3D使用VS2008。
1、创建一个Unity3D工程,在指定的目录下会生成Asset文件夹。
2、启动VS2008,新建一个Visual C#的类库项目,在“位置”处指定刚才Unity3D所创建的文件夹。
3、在资源管理器中添加到UnityEnginedll的引用,此文件位于<Unity3d安装目录>/Unity/Editor/Data/Frameworks/UnityEnginedll
4、然后修改cs文件内容以便Unity3D能够正确编译。保存并切换到Unity3D即可。

项目资源文件的资源(就是在“项目 - 资源”选项卡里添加的资源)可以这样访问:
global::项目名PropertiesResources资源名;
如果要访问窗体资源文件的资源可以这样:
SystemComponentModelComponentResourceManager resources = new SystemComponentModelComponentResourceManager(typeof(窗体名)); //先定义自己窗体的资源访问类,然后就可以通过这个resources访问窗体资源。

今天在做项目时候遇到一个问题,窗体分为左右两部分,要求在左边栏点击按钮时,右边动态加载窗体
最后想到用panel实现,经历几次失败,并查找资料后,终于搞定
说明:如果多次切换需加入 panelclear();清空原有panel内容
环境:C# VS2008
方法一:通过给panel加载子元素实现
Form2 form =
new Form2();
formFormBorderStyle = FormBorderStyleNone; //隐藏子窗体边框(去除最小花,最大化,关闭等按钮)
formTopLevel =
false; //指示子窗体非顶级窗体
thispanel1ControlsAdd(form);//将子窗体载入panel
formShow();
方法二:指定父容器实现
Form2 form=new Form2();
formMdiParent=this;//指定当前窗体为顶级Mdi窗体
formParent=thisPanel1;//指定子窗体的父容器为
FrmFormBorderStyle = FormBorderStyleNone;//隐藏子窗体边框,当然也可以在子窗体的窗体加载事件中实现


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/12698910.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-27
下一篇 2023-05-27

发表评论

登录后才能评论

评论列表(0条)

保存