天天看点

WPF中嵌入WinForm中的webbrowser控件

使用VS2008创建WPF应用程序,需使用webbrowser。从工具箱中添加WPF组件中的webbrowser发现其中有很多属性事件不能使用。决定还是使用WinForm中的webbrowser。要想在WPF中使用WinForm控件,查看MSDN,需经过以下步骤。

创建名为 HostingWfInWpf 的 WPF 应用程序项目。

在解决方案资源管理器中,添加一个对名为 WindowsFormsIntegration.dll 的 WindowsFormsIntegration 程序集的引用。

在解决方案资源管理器中,添加一个对名为 System.Windows.Forms.dll 的 Windows 窗体程序集的引用。

在 WPF 设计器中打开 Window1.xaml。

用以下 XAML 替换 Window1.xaml 中自动生成的 XAML。

<Window x:Class="HostingWfInWpf.Window1"

    Title="HostingWfInWpf"

 Loaded="WindowLoaded"

    >

    <Grid Name="grid1">

    </Grid>

</Window>

6.在代码编辑器中打开 Window1.xaml.cs。

7.将 Window1.xaml.cs 中的代码替换为以下代码。

using System;

using System.Windows;

using System.Windows.Controls;

using System.Windows.Data;

using System.Windows.Documents;

using System.Windows.Media;

using System.Windows.Shapes;

using System.Windows.Forms;

namespace HostingWfInWpf

{  

    public partial class Window1 : Window

    {

        public Window1()

        {

            InitializeComponent();

        }

        private void WindowLoaded(object sender, RoutedEventArgs e)

            // Create the interop host control.

            System.Windows.Forms.Integration.WindowsFormsHost host =

                new System.Windows.Forms.Integration.WindowsFormsHost();

            // Create the MaskedTextBox control.

            MaskedTextBox mtbDate = new MaskedTextBox("00/00/0000");

            // Assign the MaskedTextBox control as the host control's child.

            host.Child = mtbDate;

            // Add the interop host control to the Grid

            // control's collection of child controls.

            this.grid1.Children.Add(host);

    }

}

此处,将MaskedTextBox换成System.Windows.Forms.WebBrowser即可。

继续阅读