博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
wpf中插入winform控件并获取句柄
阅读量:7051 次
发布时间:2019-06-28

本文共 1114 字,大约阅读时间需要 3 分钟。

因工作需要使用wpf做界面,而有个开发包依赖picturebox控件,上网研究了一下,总算弄通了。

首先在项目中添加引用System.Windows.Forms与WindowsFormsIntegration

1 //在wpf主界面添加       2 xmlns:wfh="clr-namespace:System.Windows.Forms.Integration;assembly=WindowsFormsIntegration"3 xmlns:wfc="clr-namespace:System.Windows.Forms;assembly=System.Windows.Forms"
1 //添加winform控件2 
3
4
5 6
7
8

获取句柄

1             IntPtr flpHandle = flowLayoutPanel1.Handle;//仅限主界面代码段

动态创建picturebox放到flowLayoutPanel中

1 PictureBox pb = new PictureBox 2 { 3   Width = 500, 4   Height = 400, 5   Bounds = new System.Drawing.Rectangle(0, 0, 500, 400), 6   Name = "PictureBox" + Convert.ToString(index) 7 }; 8  9 PictureBox temp = pb;10 Control flp = Control.FromHandle(flpHandle);11 //考虑动态创建可能存在跨线程访问,添加判断                        12 if (flp.InvokeRequired)13 {14   flp.Invoke(new Action(15   () => { flp.Controls.Add(temp); picHandle = temp.Handle; }16   ));17 }18  else19 {20   flp.Controls.Add(pb);21 }

 注意在非主界面程序段,不要调用界面元素,不然会报错InvalidaOperationException

转载于:https://www.cnblogs.com/carbo-T/p/9647509.html

你可能感兴趣的文章
github push403错误的处理
查看>>
Hibernate与 MyBatis的比较
查看>>
关于百度地图API的地图坐标转换问题
查看>>
【操作系统】设备管理(五)
查看>>
ArcObject开发时,axtoolbarcontrol中一些添加的按钮是灰色的问题
查看>>
[LeetCode] Guess Number Higher or Lower 猜数字大小
查看>>
netbeans 快捷键
查看>>
C#实现GDI+基本图的缩放、拖拽、移动
查看>>
github-ssh
查看>>
FiddlerScript学习一:改动Request或Response
查看>>
linux下dd命令详解【转】
查看>>
JS及JQuery对Html内容编码,Html转义
查看>>
在java中如何在非servlet的普通类中获取request、response、session
查看>>
Linux Rsync
查看>>
Redis实现消息队列
查看>>
2k8 32bit下载
查看>>
密码需要带特殊字符
查看>>
个人收集的java精品网站
查看>>
036 关于网站的UV分析
查看>>
zabbix监控网络的出入口流量
查看>>