在WPF中添加Windows Form控件

首先,需要向项目中的reference添加两个dll,一个是.NET库中的System.Windows.Forms,另外一个是WindowsFormsIntegration,它的位置一般是在C:\Windows\Microsoft.NET\Framework\v4.0.30319\WPF 里。

添加完两个dll以后,就可以在控件库中找到WindowsFormsHost这个控件了。这个控件是我们添加Windows Form控件的基础。跟别的其他的控件一样,它也是可控的,可以自定义它在窗口中的位置、控件大小颜色等属性。我一般是比较喜欢在Blend里面创建控件。可以在Blend中的Assets中找到这个控件。或者你也可以在vs中的设计模式下的toolbox中找到它。放置完以后在xmal代码中会自动生成相应代码:

<WindowsFormsHost Height="196" HorizontalAlignment="Left" Margin="104,65,0,0" Name="windowsFormsHost1" VerticalAlignment="Top" Width="286" />

然后,需要在xmal的开始处添加两行代码

xmlns:WinFormHost="clr-namespace:System.Windows.Forms.Integration;assembly=WindowsFormsIntegration"
xmlns:WinFormControls="clr-namespace:System.Windows.Forms;assembly=System.Windows.Forms"

这样就可以在WindowsFormsHost下放置需要的Windows Form控件了,比如

<WindowsFormsHost Height="196" HorizontalAlignment="Left" Margin="104,65,0,0" Name="windowsFormsHost1" VerticalAlignment="Top" Width="286" >
<WinFormControls:Button Text="WinformButton" Width="150"/>
</WindowsFormsHost>

这是最简单的情况,就是添加了一个button,运行以后会发现整个WindowsFormsHost上就放置了一个硕大的button……如果需要有布局的可以在WindowsFormsHost下放置Panel等布局控件。

最后附上整个xmal代码

<Window x:Class="WpfApplication2.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"
xmlns:WinFormControls
="clr-namespace:System.Windows.Forms;assembly=System.Windows.Forms"
Title
="MainWindow" Height="350" Width="525">
<Grid>
<WindowsFormsHost Height="196" HorizontalAlignment="Left" Margin="104,65,0,0" Name="windowsFormsHost1" VerticalAlignment="Top" Width="286" >
<WinFormControls:Button Text="WinformButton" Width="150"/>
</WindowsFormsHost>
</Grid>
</Window>

附上一个有用的链接,如果想做响应的朋友可以参考一下

http://www.dotblogs.com.tw/ouch1978/archive/2011/01/03/wpf_windowsformsintegration.aspx

转载于:https://www.cnblogs.com/iacocca/archive/2011/08/18/2144640.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值