WebBrowser.Source.AbsuloteUri 返回 null,但我初始化了源代码

WebBrowser.Source.AbsuloteUri return null, but I initialized the source

提问人:Арсен Абдигали 提问时间:10/3/2020 最后编辑:Athanasios KatarasАрсен Абдигали 更新时间:10/4/2020 访问量:66

问:

我有一个简单的窗口,比方说,有两个控件:WebBrowser 和 TextBox。

<TextBox Name="uriTextBox"/>
<WebBrowser Name="webPageWebBrowser"/>

和带有构造函数的 MainWindow.xaml.cs:

public MainWindow()
    {
        InitializeComponent();
        webPageWebBrowser.Source = new Uri("https://google.com");
        uriTextBox.Text = webPageWebBrowser.Source.AbsoluteUri;
    }

因此,webPageWebBrowser.Source 会引发异常:

System.NullReferenceException: 'Object reference not set to an instance of an object.'
System.Windows.Controls.WebBrowser.Source.get returned null.

我该怎么办?

C# WPF 用户界面 URI NullReferenceException

评论


答:

0赞 Athanasios Kataras 10/3/2020 #1

加载源后,尝试访问源

public MainWindow()
    {
        InitializeComponent();
        webPageWebBrowser.Source = new Uri("https://google.com");
        webPageWebBrowser.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(wb_DocumentCompleted);
    }


private void wb_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
   uriTextBox.Text = webPageWebBrowser.Source.AbsoluteUri;
}

从文档中:

设置 source 属性会导致 WebBrowser 导航到 Uri 指定的文档。如果 Uri 为 null,则显示空白文档 (“about:blank”)。

因此,我假设源在加载之前为 null。