Abb*_*ala 8 c# browser invalid-url null-object-pattern webview2
我正在创建 Microsoft.Web.WebView2.WinForm.WebView2 的对象,但此 coreWebView2 的子对象为空
Microsoft.Web.WebView2.WinForm.WebView2 webView = new Microsoft.Web.WebView2.WinForm.WebView2()
// Change some GUI properties of webView
webView.CoreWebView.NavigateUrl(url)
// I can not access the above line because CoreWebView is null
Run Code Online (Sandbox Code Playgroud)
您可以使用EnsureCoreWebView2Async它来确保在进行任何导航之前对象已初始化。但是,更简单的是,您可以设置Source确保触发初始化的属性(如果尚未触发):
Microsoft.Web.WebView2.WinForm.WebView2 webView = new Microsoft.Web.WebView2.WinForm.WebView2();
webView.Soure = url;
Run Code Online (Sandbox Code Playgroud)
使用EnsureCoreWebView2Async方法初始化底层CoreWebView2属性。这在 MSDN 上有记录。此属性null用于WebView2类对象的初始化。
CoreWebView2 底层 CoreWebView2。
公共 CoreWebView2 CoreWebView2
使用此属性对 WebView2 内容执行比在 WebView2 上公开的操作更多的操作。此值在初始化之前为空。您可以通过 InitializeAsync(EnsureCoreWebView2Async - 显然 Microsoft 未能更新其文档)方法强制底层 CoreWebView2 进行初始化。
小智 6
在程序开始时使用webView2.EnsureCoreWebView2Async(); 来初始化并创建事件以检查它是否已初始化。
bool ensure = false;
private void webView21_CoreWebView2InitializationCompleted(object sender, Microsoft.Web.WebView2.Core.CoreWebView2InitializationCompletedEventArgs e)
{
ensure = true;
}
Run Code Online (Sandbox Code Playgroud)
工作演示:https://www.youtube.com/watch? v=S6Zr5T9UXUk
我尝试了网络上的所有内容,但CoreWebView2总是null.
事实证明,我错过了Edge的运行时。
然后我使用Microsoft Edge WebView2的 Evergreen Standalone 安装程序安装了它。然后它起作用了!
小智 5
首先,您必须使用以下代码初始化 webview2。
WebView21.EnsureCoreWebView2Async()
Run Code Online (Sandbox Code Playgroud)
然后,您应该在名为 CoreWebView2InitializationCompleted 的事件中编写以下代码。
WebView21.CoreWebView2.Navigate(yoururl)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9686 次 |
| 最近记录: |