WebBrowser 类使用户可以在窗体中导航网页,它是一个Winfrom控件,命名空间是System.Windows.Forms。WPF中也有WebBrowser控件,但是与Winform里的相比较功能少很多。所以这里采用WPF加载Winform自定义WebBrower控件的方式,实现一个简单的加载网页并动态缩放的效果。
实现的效果如下:

1、首先添加 System.Windows.Forms.dll和WindowsFormsIntegration.dll程序集
2、新建MyWebBrowser.cs类继承System.Windows.Forms.WebBrowser
using System;
using System.Runtime.InteropServices;
using System.Windows.Forms;
namespace WebBrowserDemo
{
class MyWebBrowser : WebBrowser
{
#region enums
public enum OLECMDID
{
OLECMDID_OPTICAL_ZOOM = 63,
OLECMDID_OPTICAL_GETZOOMRANGE = 64,
}
public enum OLECMDEXECOPT
{
OLECMDEXECOPT_DONTPROMPTUSER,
}
public enum OLECMDF
{
OLECMDF_SUPPORTED = 1
}
#endregion
#region IWebBrowser
[ComImport, /*SuppressUnmanagedCodeSecurity,*/
TypeLibType(TypeLibTypeFlags.FOleAutomation |
TypeLibTypeFlags.FDual |
TypeLibTypeFlags.FHidden),
Guid("D30C1661-CDAF-11d0-8A3E-00C04FC9E26E")]
public interface IWebBrowser
{
[DispId(100)]
void GoBack();
[DispId(0x65)]
void GoForward();
[DispId(0x66)]
void GoHome();
[DispId(0x67)]
void GoSearch();
[DispId(0x68)]
void Navigate([In] string Url,
[In] ref object flags,
[In] ref object targetFrameName,
[In] ref object postData,
[In] ref object headers);
[DispId(-550)]
void Refresh();
[DispId(0x69)]
void Refresh2([In] ref object level);
[DispId(0x6a)]
void Stop();
[DispId(200)]
object Application
{
[return:
MarshalAs(UnmanagedType.IDispatch)]
get;
}
[Dis

本文介绍了如何在WPF应用中使用自定义的WebBrowser控件来实现网页的加载和缩放功能。通过继承System.Windows.Forms.WebBrowser类,结合WindowsFormsIntegration.dll,能够在WPF窗口中展示功能丰富的Web页面,并能进行动态缩放操作。
最低0.47元/天 解锁文章
766

被折叠的 条评论
为什么被折叠?



