WinForms dies in EndInit of Microsoft.Toolkit.Win32.UI.Contr



我正在尝试将WebView添加到WinForm,以便在应用程序中使用现代浏览器。

从空白的 WinForm 开始,我添加了用于创建 WebView 并将其添加到窗体控件的代码。

using System;
using System.ComponentModel;
using System.Windows.Forms;
namespace TestWebView
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
var wvc = new Microsoft.Toolkit.Win32.UI.Controls.WinForms.WebView();
((ISupportInitialize)wvc).BeginInit();
wvc.Dock = DockStyle.Fill;
Controls.Add(wvc);
((ISupportInitialize)wvc).EndInit();
// You can also use the Source property
wvc.Navigate(new Uri("https://www.microsoft.com"));
}
}
}

这将编译并运行,但 EndInit(( 调用未完成。 不会引发任何异常。 呼叫进入但不离开。

该项目是为 .NET Framework 4.7.1 设置的。我使用 NuGet 管理器将 Microsoft.Toolkit.WIn32.UI.Controls v4.0.2 添加到项目中。 我正在按照 https://blogs.windows.com/msedgedev/2018/05/09/modern-webview-winforms-wpf-apps/上的说明进行操作

为什么这不起作用?

我以管理员身份运行Visual Studio。

如果我正常运行VS,网络视图可以工作。

所以,现在我有一个不同的问题:如何以管理员身份运行 WebView?

感谢史蒂夫和吉米的有用评论。

看起来您需要从下面下载最新版本的v5

https://github.com/windows-toolkit/WindowsCommunityToolkit/releases/tag/v5.0.0

4.0.3 现已过时,看起来像 Windows 10 更新破坏了 API。上述链接适用于 Windows 10 内部版本 17110 或更高版本

长话短说,您无法在提升模式下运行 WebView 组件(以管理员身份(。 如果这样做,则会创建事件查看器错误:

另一个副作用是它挂在 EndInit 方法中。

最新更新