如何在WPF上运行winform?

时间:2011-03-22 07:13:23

标签: wpf winforms

我想在我的wpf应用程序中使用我的winform - 这可能吗?

3 个答案:

答案 0 :(得分:4)

是的 - 这是可能的。

使用ElementHost将WPF内容放入Windows窗体控件, 并且还使用WindowsFormsHost直接在WPF元素中托管Windows窗体组件。

答案 1 :(得分:1)

是的,WPF应用程序可以托管WinForm控件和窗口。

还有一种方法可以打包在WinForm中使用的WPF控件,但它更复杂,绝对不推荐。

WPF上的大多数书籍都会教你如何托管WinForm控件。

答案 2 :(得分:1)

在WPF应用程序中显示托管WinForms Browser控件(带有禁用的快捷方式)的小例子:

<Window x:Class="how_to_make_winform_run_on_wpf.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:wf="clr-namespace:System.Windows.Forms;assembly=System.Windows.Forms"
        >
    <WindowsFormsHost>
        <wf:WebBrowser WebBrowserShortcutsEnabled="False" Url="http://stackoverflow.com"></wf:WebBrowser>
    </WindowsFormsHost>
</Window>

当然,您应该添加对WinFormsIntegration和System.Windows.Forms程序集的引用。 使用此示例时,您会注意到所有标准的WinForms控件都使用平面样式。要为WinForms控件启用类似WinXP的样式,请输入

public App()
{
    System.Windows.Forms.Application.EnableVisualStyles();
}

在App.xaml.cs