描述
环境:VM4.0.0 + VS2013及以上
现象:在算子SDK开发过程中,用户如何使用封装好的Winform模板匹配等控件?
解答
- 首先添加对如下两个dll文件的引用:WindowsFormsIntegration.dll,System.Windows.Forms.dll。
- 在要使用WinForm控件的WPF窗体的XAML文件中添加引用。示例代码如下:
C#
xmlns:wf=“clr-namespace:System.Windows.Forms;assembly=System.Windows. Forms”
xmlns:wfi=“clr-namespace:System.Windows.Forms.Integration;assembly= WindowsFormsIntegration”
- 在WPF的容器控件内如StackPanel内首先要添加WinForm控件的宿主容器,用于衔接WPF和WinForm。示例代码如下:
C# XAML
"- 在代码中定义UserControl1 user= new UserControl1 (); 这里不要忘记添加引用。UserControl1 是自定义的Winform用户控件,用于存放控件。然后再将控件放入WindowsFormsHost 中,示例代码如下:
C# .CS
UserControl1 user= new UserControl1 ();
this.host.Child = user; //使XML文件中的host中的内容为用户控件user
- 如算子SDK中渲染控件在WPF中的调用,添加渲染控件dll,示例代码如下。