WPF WebBrowser问题

时间:2010-09-17 17:32:57

标签: c# wpf browser

我在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 个答案:

答案 0 :(得分:1)

不确定通过WPF,但如果您使用HttpWebRequest和HttpWebResponse以编程方式尝试首先获取您的网址,则响应将为您提供http StatusCode,即200,404等。如果您愿意,可能会有用首先检查200并抢先禁用浏览器。不完全是你的问题的答案,但有可能。

答案 1 :(得分:0)

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

要抑制错误,请隐藏WebBrowser组件,可能是通过覆盖礼貌消息 - 您的用户将希望知道操作未成功,但不必查看导航失败。

答案 2 :(得分:0)

如果我是对的Source属性不可绑定,因为它不是依赖属性。

看看这篇文章:

databind the Source property of the WebBrowser in WPF

数量锐减

答案 3 :(得分:0)

您可以尝试使用此NavigationService中指示的System.Windows.Controls.Frame中的MSDN forum post。对于WPF中的WebResponse控件,WebBrowser始终为空(,如帖子中所述)。