WPF中嵌入WinForm中的webbrowser控件

原文:WPF中嵌入WinForm中的webbrowser控件

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

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

  2. 在解决方案资源管理器中,添加一个对名为 WindowsFormsIntegration.dll 的 WindowsFormsIntegration 程序集的引用。
  3. 在解决方案资源管理器中,添加一个对名为 System.Windows.Forms.dll 的 Windows 窗体程序集的引用。
  4. 在 WPF 设计器中打开 Window1.xaml。
  5. 用以下 XAML 替换 Window1.xaml 中自动生成的 XAML。

<Window x:Class="HostingWfInWpf.Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    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即可。

WPF中嵌入WinForm中的webbrowser控件,布布扣,bubuko.com

时间: 2024-10-01 17:22:17

WPF中嵌入WinForm中的webbrowser控件的相关文章

Visual C#中的winform/webform/asp.net控件命名规范

                                                                        1.控件命名规范 类型 前缀 示例 AdRotator adrt adrtTopAd Button btn btnSubmit Calendar cal calMettingDates CheckBox chk chkBlue CheckBoxList chkl chklFavColors CompareValidator valc valcValidA

C# WebBrowser控件使用整理

一.简介 WebBrowser 控件为 WebBrowser ActiveX 控件提供了托管包装. 托管包装使您可以在 Windows 窗体客户端应用程序中显示网页. 使用WebBrowser 控件,可以复制应用程序中的 Internet Explorer Web 浏览功能,还可以禁用默认的 Internet Explorer 功能,并将该控件用作简单的 HTML 文档查看器. 此外,可以使用该控件将基于 DHTML 的用户界面元素添加到窗体中,还可以隐瞒这些元素在 WebBrowser 控件中

在WPF的WebBrowser控件中屏蔽脚本错误的提示

在WPF中使用WebBrowser控件显示网页时,经常会报脚本错误的提示,如何屏蔽掉这些错误提示呢.方法是定义如下方法: public void SuppressScriptErrors(WebBrowser wb, bool Hide) { FieldInfo fiComWebBrowser = typeof(WebBrowser).GetField("_axIWebBrowser2", BindingFlags.Instance | BindingFlags.NonPublic);

winform中WebBrowser控件执行脚本

在实际应用中我们可能需要WebBrowser控件主动执行我们需要的脚本,执行脚本现在有两种方法. 1.WebBrowser控件加载脚本,简单方便,适用于简短的脚本,无法执行复杂操作. webBrowser.Navigate("javascript:editor.areaToFrame();document.getElementById('articlePostBtn').click();"); 相当于你在浏览器地址栏,直接输入脚本来执行. 2.使用微软提供的动态库,也就是Microso

winform WebBrowser控件中,cs后台代码执行动态生成的js

很多文章都是好介绍C# 后台cs和js如何交互,cs调用js方法(js方法必须是页面上存在的,已经定义好的),js调用cs方法, 但如果想用cs里面执行动态生成的js代码,如何实现呢? 思路大致是这样的,cs动态插入js到html上,cs执行html插入的js方法代码. 封装好的方法: /// <summary> /// webbrowser执行脚本 /// </summary> /// <param name="web">传入WebBrowser 

C#中WebBrowser控件的使用

今天在YouTube上看了一个关于WebBrowser控件用法的小视频,做一下总结. 首先创建一个WinForm程序,拖入一个textbox控件和一个button按钮,然后拖入一个panel控件,如图所示: 拖入panel控件后,找到WebBrowser控件并双击,WebBrowser控件就会自动填充到panel控件上,像下面这样: 之后给button改个名,双击button按钮设置一个简单的跳转行为: private void goButton_Click(object sender, Eve

C#中的WebBrowser控件的使用

0.常用方法 Navigate(string urlString):浏览urlString表示的网址 Navigate(System.Uri url):浏览url表示的网址 Navigate(string urlString, string targetFrameName, byte[] postData, string additionalHeaders): 浏览urlString表示的网址,并发送postData中的消息 //(通常我们登录一个网站的时候就会把用户名和密码作为postData

VC++ 使用WebBrowser控件中html文件以资源形式加载

1 . . . . 2 3 //加载资源文件中的HTML,IDR_HTML1就是HTML文件在资源文件中的ID 4 wchar_t self_path[MAX_PATH] = { 0 }; 5 GetModuleFileName(NULL, self_path, MAX_PATH); 6 CString res_url; 7 res_url.Format(L"res://%s/%d", self_path, IDR_HTML1); 8 m_webbrowser.Navigate(res

Delphi中代替WebBrowser控件的第三方控件

原文地址:http://blog.csdn.net/nanfeiyannan/article/details/7341492 这几天,接触到在delphi中内嵌网页,用delphi7自带的TWebBrowser控件,显示的内容与本机IE8显示的不一样,但是跟装IE8之前的IE6显示一个效果.现在赶脚是下面两个原因中的一个: 1.Navigate这个方法用的有点问题,里面的参数不同及Navigate2等不同方法,调用的IE内核版本不同 2.这个自带的控件用着不爽,直接换一个第三方控件 对于第一点,