WPF和WINFORM的互操作

北慕城南 提交于 2019-12-09 03:55:41

在WPF中使用Winform控件

<Window x:Class="WPFApplication.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:winforms="clr-namespace:WindowsFormsControl;assembly=WindowsFormsControl"
xmlns:my="clr-namespace:System.Windows.Forms.Integration;assembly=WindowsFormsIntegration"
Title="Window1" Height="300" Width="300" >
<Grid>
<my:WindowsFormsHost Name="windowsFormsHost1">
<winforms:UserControl1 x:Name="myControl" ButtonText="Click me!" />
</my:WindowsFormsHost>
</Grid>
</Window>

其中xmlns:winforms=…为导入命名空间和程序集名称
<Grid>中的标记为winform用户控件

 

Winform中使用WPF控件,需要添加以下几个与WPF相关的引用:
* PresentationCore
* PresentationFramework
* System.Xaml
* WindowsBase
* WindowsFormsIntegration

 

void WPFInWinform()
{
//创建WPF控件
System.Windows.Controls.TextBox wpfTxt = new System.Windows.Controls.TextBox();
wpfTxt.Name = "txName";
wpfTxt.Text = "WPF TextBox";
//创建使用WPF控件的容器
ElementHost elementHost = new ElementHost();
elementHost.Dock = DockStyle.None;
elementHost.Width = 150;
elementHost.Height = 50;

elementHost.Child = wpfTxt;
this.Controls.Add(elementHost);
}

 

可以在界面上面选择Child

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!