WPF WebBrowser问题

3
我将使用WPF中的WebBrowser,像这样:

 <WebBrowser 
     Name="SSSBrowser" 
     Margin="8,4,8,8" 
     Grid.Row="1"            
     dp:WebBrowserUtility.BindableSource="{Binding WebAddress}"/>

现在,我会简单地用C#来加载它:

private string _webAddress;
public string WebAddress 
{
  get { return "http://www.somewebsite.com/updates/message/message.htm"; }
  set { _webAddress = value; }
}

我希望做的是,如果由于任何原因无法访问网页,则防止显示错误。如何在代码中判断网站是否返回了错误,并禁用WebBrowser,以便不向用户显示错误?非常感谢您提供的任何帮助!
4个回答

1

不确定是否通过WPF,但如果您使用HttpWebRequest和HttpWebResponse来编程尝试首先获取您的URL,则响应将给出HTTP StatusCode,即200、404等。如果您想要先检查200并预先禁用浏览器,则可能会有用。这不完全是您问题的答案,但是这是一种可能性。


0

0

WPF WebBrowser对象似乎没有ErrorOpeningURL事件,因此根据以往的经验,您可以连接到Navigated事件并检查URI是否为IE错误页面(res://Error.html.. IIRC),或者深入NavigationEventArgsWebResponse的头部。

要抑制错误,请隐藏WebBrowser组件,例如用礼貌的消息覆盖 - 您的用户将想知道操作未成功,但不必看到导航失败。


我感觉这个选项已经接近了。目前我有 'private void SSSBrowser_Navigated(object sender, System.Windows.Navigation.NavigationEventArgs e)',但我不确定在哪里查看是否存在问题。有什么建议吗? - ErocM
1
WebResponse 始终为空。 - SliverNinja - MSFT

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接