原来有一个WINFORM项目的功能模块希望集成到新的WPF项目中,怎样集成才最简单?
思路:将原来的WINFORM项目类型改为WindowsFormsControlLibrary类型就OK了。
步骤:
1、所以我们就直接建立一个WindowsFormsControlLibrary项目吧!接着我在该项目中新增Windows Form,为Form1。也就是将原来的项目类型改造为WindowsFormsControlLibrary项目。
2新建Wpf项目
(1)、添加两个引用:WindowsFormsIntegration.dll(负责整合WPF和Windows)、System.Windows.Forms.
(2)、在 XAML文件中添加两个引用(粗体部分):
<Window x:Class="WpfApplication1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:WinFormHost="clr-namespace:System.Windows.Forms.Integration;assembly=WindowsFormsIntegration"
Title="MainWindow" Height="350" Width="525">
(3)添加HOST宿主
<Window x:Class="WpfApplication1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:WinFormHost="clr-namespace:System.Windows.Forms.Integration;assembly=WindowsFormsIntegration"
Title="MainWindow" Height="350" Width="525">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition></ColumnDefinition>
</Grid.ColumnDefinitions>
<WindowsFormsHost Name="windowsFormsHost1" Grid.Column="0" Margin="3"></WindowsFormsHost>
</Grid>
</Window>
windowsFormsHost1 就是FORM窗体显示的宿主
(4)接着我们要在WPF项目中引用刚才WindowsFormsControlLibrary项目建出来的dll档
(5)在MainWindow.xaml.cs中添加代码
using System.Windows.Media.Imaging;
版权声明:本文为博主原创文章,未经博主允许不得转载。
在WPF中内嵌WindowsForm控件-使用WindowsFormsControlLibrary
原文地址:http://blog.csdn.net/metal1/article/details/47036567