【问题标题】:WinForms dies in EndInit of Microsoft.Toolkit.Win32.UI.Controls.WinForms.WebViewWinForms 在 Microsoft.Toolkit.Win32.UI.Controls.WinForms.WebView 的 EndInit 中死亡
【发布时间】:2019-03-20 01:01:40
【问题描述】:

我正在尝试将 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/ 上的说明进行操作

为什么这不起作用?

【问题讨论】:

  • 如果您将 Controls.Add 移出 Begin/EndInit 块,它会起作用吗?
  • 您是否尝试过工具箱版本的控件,将一个放在窗体上?检查生成的代码可能很有用。该模式应该与实现ISupportInitialize 的其他控件使用的相同(例如,PictureBoxTrackBar...)。
  • @Steve:我将 Add() 移出 Begin/EndInit。它仍然挂起。
  • @Jimi:InitializeComponent() 调用 EndInit() 并且永远不会返回。它与非工具箱代码具有相同的行为。
  • 您是否尝试过库中包含的 WinForms 项目?结果一样吗?那台机器上有 Edge 吗:)

标签: c# winforms webview toolkit


【解决方案1】:

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

如果我正常运行 VS,WebView 可以工作。

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

感谢 Steve 和 Jimi 提供帮助的 cmets。

【讨论】:

    【解决方案2】:

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

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

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

    【讨论】:

    • 最新版本 v5.1.1 没有解决问题,我也卡住了无法以管理员身份使用 WebView 运行应用程序
    • freedeveloper 你用的是什么win版本?
    • Windows 10 Enterprise 1809。在上一个 1903 版本中也是如此
    【解决方案3】:
    猜你喜欢
    • 2018-02-22
    • 2018-06-23
    • 2010-12-15
    • 2014-02-16
    • 1970-01-01
    • 1970-01-01
    • 2011-12-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多