当前位置:编程学习 > C#/ASP.NET >>

请问wpf如何调用winform写的DLL

能调用吗
我在网上查了

需要向项目中的reference添加两个dll,一个是.NET库中的System.Windows.Forms,另外一个是WindowsFormsIntegration,之类的云云···

但是工具箱 全部显示 发现WINFORM自带控件 和我要引入的控件都是白色的 

这个怎么处理 --------------------编程问答-------------------- 楼主是想用第三方控件吧 

右键->选择项->浏览找到.dll文件(文件最好放在当前项目\bin\Debug文件中) 按确定,控件就添加到工具箱中了.

我这边这样就没问题的啊  

如果是想调用动态库里的函数,添加引用 --------------------编程问答-------------------- 我建立的是WPF工程
调用那边是.NET FRAMEWORK的DLL WINFORM写的TOOLBAR
愣是不认 工具箱全部显示出了灰色的TOOLBAR 就是不让我拉进去 --------------------编程问答-------------------- 我只是在想可惜了C#那么多自做的控件
换了WPF全部要XAML重写多麻烦 虽然有RIBBON --------------------编程问答-------------------- 帮顶有分 --------------------编程问答-------------------- 在WPF中使用WinForm控件,参考:WindowsFormsHost  

首先:在wpf中放置一个WindowsFormsHost控件,
然后:就可以向WindowsFormsHost中放置Winform控件了。

注意:WindowsFormsHost有一些使用限制,例如:
1、始终在显示在最上层,WPF元素会被遮挡住。
2、不能参与变换。

PS:wpf做控件是相当的方便和快捷,对于toolbar,你可以参考下wpf的command绑定,非常的好用。 --------------------编程问答--------------------
引用 5 楼 dqdan 的回复:
在WPF中使用WinForm控件,参考:WindowsFormsHost  

首先:在wpf中放置一个WindowsFormsHost控件,
然后:就可以向WindowsFormsHost中放置Winform控件了。

注意:WindowsFormsHost有一些使用限制,例如:
1、始终在显示在最上层,WPF元素会被遮挡住。
2、不能参与变换。

PS:wpf做控件是相当的方……

我是菜鸟,请问WindowsFormsHost控件是什么?我添加第三方控件时没加这个怎么也行 --------------------编程问答-------------------- WindowsFormsHost:允许在 WPF 页面上承载 Windows 窗体控件的元素

查下MSDN就知道了。。。 --------------------编程问答--------------------
引用 7 楼 dqdan 的回复:
WindowsFormsHost:允许在 WPF 页面上承载 Windows 窗体控件的元素

查下MSDN就知道了。。。


我已经做了这部 然后那个DLL怎么拉进去?
我那个DLL在工具箱显示是不可用 其他WINFORM控件也一样 --------------------编程问答-------------------- 5楼正确
不过那种东西限制太多
曾经用过,不好用
还没WPF重写来的快 --------------------编程问答-------------------- 不能拖放吗?我没注意过,可能VS还不能智能的判断出目标区域是WindowsFormsHost吧。

写XAML,我一般不用界面拖拽的:
1、太麻烦,还需要手工删除多余的属性
2、WPF太自由了,一切皆是Object,还有大量的绑定,样式等等

所以,我一般都是手写XAML,习惯了就好,而且键盘操作速度比鼠标+键盘快一些! --------------------编程问答-------------------- 虽然我用默认的TOOLBAR和RIBBON都做了比较漂亮和渐变的TOOLBAR 但是对不能重用NET FRAMEWORD的DLL感到十分大的遗憾 --------------------编程问答-------------------- 给你写个例子吧!
先添加引用
System.Windows.Forms.dll
WindowsFormsIntegration.dll

XAML代码如下,界面中的Button就是Winform的,你可以参考下布局,替换成你自己的Winform控件:
<Window x:Class="WpfApplication2.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
        xmlns:winform="clr-namespace:System.Windows.Forms;assembly=System.Windows.Forms"  
        Title="MainWindow" Height="350" Width="525">
    <Grid>
        <WindowsFormsHost>
            <winform:Button Text="WinForm"/>
        </WindowsFormsHost>
    </Grid>
</Window>
--------------------编程问答--------------------
引用 12 楼 dqdan 的回复:
给你写个例子吧!
先添加引用
System.Windows.Forms.dll
WindowsFormsIntegration.dll

XAML代码如下,界面中的Button就是Winform的,你可以参考下布局,替换成你自己的Winform控件:
<Window x:Class="WpfApplication2.MainWindow"
  xmlns="http://schema……


只能代码输入吗 不能拉进去?
我不是说放不方便的问题 只是想再专研一下 但是经过几天的学习还是决定 WPF的项目 UI还是纯XAML比较安全··· --------------------编程问答-------------------- 你的选择是明智的,祝好运!

PS:WFP看上去很美(十全九美),但是存在一些注意事项(不注意的话会引起内存泄露,如果按照微软的办法解决,等你解决后就发现WPF也没有那么美了)。
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,