问题描述
我有一个简单的窗口,有两个控件: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.
我该怎么办?
解决方法
加载后尝试访问源文件
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为空,则显示空白文档(“ about:blank”)。
所以我假设在加载之前源为空。