关于window form 和WPF.
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于window form 和WPF.相关的知识,希望对你有一定的参考价值。
我想编一带界面的应用程序,但有人说MFC已过时了,我个人也觉得MFC太繁锁了.现在用window form或是WPF,我使用的是C++语言.请问用哪一种方法比较好,是window form还是WPF.
如果是用window form的话,请否介绍几本window form关于C++的书.
如果是用WPF,能否介绍几本关于C#和WPF的书.比较入门的.
自我感觉比wpf深入浅出更易懂
当当网有详细介绍
http://product.dangdang.com/product.aspx?product_id=20458944
WPF使用Winform自定义控件
在WPF的用户控件中使用Winfrom自定义控件的过程:
1、添加引用
WindowsFormsIntegration.dll
System.Windows.Forms.dll
2、在要使用WinForm控件的WPF窗体的XAML文件中添加如下内容:
xmlns:wf="clr-namespace:System.Windows.Forms;assembly=System.Windows.Forms" xmlns:wfi ="clr-namespace:System.Windows.Forms.Integration;assembly=WindowsFormsIntegration"
如下图所示:
3、 在WPF的容器控件内如StackPanel内首先要添加WinForm控件的宿主容器,用于衔接WPF和WinForm,
对应XAML如下:
说明:<wfi:WindowsFormsHost></wfi:WindowsFormsHost>即为WinForm控件的宿主容器,每一个宿主容器只能放一个WinForm控件,如下例,放了三个WinForm控件,分别放在三个宿主容器里面,该容器可以设置属性来调整大小和布局
注意:如上我添加的WinForm控件如在指定其Name时,必须加前缀x:,如添加Lable时<wf:Label x:Name="wpfLabel" Text="我是WPF中的WinForm控件” />,否则后台代码无法访问。
<local:UserControl1 Name="Header" Width="319" Height="30"></local:UserControl1>这个为Winform自定义控件。
<StackPanel>
<wfi:WindowsFormsHost>
<local:UserControl1 Name="Header" Width="319" Height="30"></local:UserControl1>
</wfi:WindowsFormsHost>
<wfi:WindowsFormsHost>
<wf:Label x:Name="wfLabel" Text="winForm控件在此" />
</wfi:WindowsFormsHost>
</StackPanel>
4、 如果要在WPF后台代码中访问上面的Lable,可直接像在WinForm中使用一样。
ok,今天的分享就到这里了,有疑问欢迎指导。
以上是关于关于window form 和WPF.的主要内容,如果未能解决你的问题,请参考以下文章
将非WPF window设为 WPF Window的Owner