WebBrowser万年不变的是IE内核,对html5支持不友好。而在wpf开发中嵌入WebBrowser会自动显示在其他控件上面,不好处理。自从微软edge拥抱chromiun后又开发了webview2。因为是基于chromiun的所以对web的兼容性很好。且.net6中已经不支持WebBrowser。因此有必要记录一下常用开发。
webview2不是标准控件,需要从nuget中引入。如下图
初始化webview2控件
Private Async Sub Form1_Load(sender As Object, e As EventArgs) Handles Me.Load
Await WebView21.EnsureCoreWebView2Async() '必写,将webview2与浏览器核心异步,初始化控件
WebView21.BackColor = Color.Red
WebView21.CoreWebView2.Settings.AreDefaultContextMenusEnabled = False '禁止右键菜单
WebView21.CoreWebView2.Settings.AreDevToolsEnabled = False '禁止开发模式
WebView21.CoreWebView2.Settings.AreBrowserAcceleratorKeysEnabled = False '禁止快捷键
WebView21.CoreWebView2.Settings.IsZoomControlEnabled = False '禁止缩放
'添加打开新窗口的事件
AddHandler WebView21.CoreWebView2.NewWindowRequested, AddressOf CoreWebView_新窗口请求
End Sub
因为webview2控件没有直接关联NewWindowRequested事件所以需要我们自定义新窗口事件
Private Sub CoreWebView_新窗口请求(sender As Object, args As CoreWebView2NewWindowRequestedEventArgs)
args.NewWindow = WebView21.CoreWebView2 '在webview2中打开新连接
args.Handled = True '已处理
End Sub
打开网址的两种方法
WebView21.Source = New Uri("https://www.qq.com")
WebView21.CoreWebView2.Navigate("https://www.baidu.com")
注意:在wpf中引入nuget包后还要再xaml中进行如下引用
xmlns:wv2="clr-namespace:Microsoft.Web.WebView2.Wpf;assembly=Microsoft.Web.WebView2.Wpf"
WPF中WebBrowser不显示脚本错误的方法之vb.net https://www.juziyu.cn/743.html