使用elementhost将wpf内容移植到winform窗体
来源:互联网 发布:手机照片涂鸦软件 编辑:程序博客网 时间:2024/05/21 22:37
刚才完成了一项移植工作,趁着还没忘记,写点注意事项。
首先目标wpf窗体非常复杂,很多控件,而且按钮是自动生成的,用了用户控件、模板、订制控件、资源、事件路由、handle等一大堆非普通写法,想把这些移植到winform上去似乎很困难,实际上简单的超乎想象,这里要感谢下微软,把能做的都已经做好了,wpf和winform几乎可以完美衔接。下面是简易步骤:
1,建立一个wpf的usercontrol,将源wpf窗口的xaml内容直接复制到到新建的usercontrol,注意区别:将windows改成UserControl。
2,按F7,打开那个usercontrol的cs文件,将源窗口的cs文件内容复制过去,同样要注意改名字,载体不同了,这里我报了160多个错误,改好名字后迅速减到28个。
3,在工具栏里面直接将那个新建的usercontrol拖到要用的winform上,他会自动添加elementhost
至此理论上完成了移植工作,F5,发现只能显示一部分内容,尤其是自动生成的按钮不全而且无反应。
分析原因,发现:usercontrol的cs文件少了一些方法,wpfwindows有些控件方法是双击生成的(偷懒),因此没有反应到usercontrol中,比如load方法。
改好,再F5,内容全了,但是显示不正常。
分析原因,发现:源wpf windows里面使用了其他usercontrol,而那些usercontrol的事件不能被新usercontrol调用到,因此需要重写那些usercontrol(或许还有更好的办法,懒得想了,找这个错误花费了1个小时)
改好,继续F5,完美了。
管你什么handle,管你什么模板、订制控件、事件路由,简单几步+细心检查就能完美的在winform上重现!
奔跑着歌颂M$!!!
- 使用elementhost将wpf内容移植到winform窗体
- Winform 移植到 WPF 中 窗体变丑 解决方案
- winform插入ElementHost与wpf之间的互访
- winform将窗体最小化到托盘
- 【WPF】将DataGrid内容导出到Excel
- WPF将DataGrid内容导出到Excel
- WinForm中使用反射将业务对象绑定到窗体或控件容器
- WinForm中使用反射将业务对象绑定到窗体或控件容器
- 关于WinForm引用WPF窗体
- wpf 中加载winform窗体
- WPF 中添加winform 窗体
- WPF和Winform拖动窗体
- winform-wpf-窗体混合显示
- 将.net winform 通过wpf嵌入到浏览器中
- 【二次开发】将CATIA嵌入到Winform窗体中
- c# winForm 将窗体状态栏 StatusStrip控件使用举例
- WPF实现窗体内容分割
- WinForm程序如何将子窗体嵌入到父窗体的Panel里
- 编写一个文件,读取 src 下面day12包 下面的my.properties 文件,文件内容如下, className=day12.User 结合 IO、反射知识,完成 配置文件中对象的创建和方法调用。并编写方法,列举出 Student 类中所有的属性、
- 完成一个程序,打印一个树状的目录结构。子目录与父目录之间有两个空格的缩进
- 好累
- 如何使用.net编写GPS应用程序
- C++xml文件操作 CMarkup学习方法说明(转)
- 使用elementhost将wpf内容移植到winform窗体
- VC解析XML--使用CMarkup类解析XML
- 为什么中国出不了Facebook?
- UART分析与设计
- 整数溢出,如何判断整数溢出
- jdbc ----利用配置文件进行数据库连接
- 一道PHP面试题 大数相加 溢出的处理
- XFire中进行自定义异常
- tty_flip_buffer_push