2010-09-17 82 views
3

我使用WebBrowser在WPF是這樣的:WPF web瀏覽器的問題

<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,以便它不會在屏幕上向用戶提供錯誤?

任何幫助將不勝感激!

回答

1

不確定是否通過WPF,但如果您使用HttpWebRequest和HttpWebResponse以編程方式嘗試首先獲取您的網址,則響應將爲您提供http StatusCode,即200,404等。如果您想檢查200先搶先使用瀏覽器。不完全是你的問題的答案,而是一種可能性。

0

對於WPF WebBrowser對象,似乎沒有ErrorOpeningURL事件,因此,根據以前的經驗判斷,您可以連接到Navigated事件並檢查URI是否爲IE錯誤頁面(res:// Error.html .. IIRC)或挖掘到NavigationEventArgsWebResponse並檢查標題。

要抑制錯誤,請隱藏WebBrowser組件,或許通過禮貌信息覆蓋 - 您的用戶將希望知道操作未成功,但不必看到導航失敗。

+0

我覺得我好像接近這個選項。我有'私人無效SSSBrowser_Navigated(對象發件人,System.Windows.Navigation.NavigationEventArgs e)「,但我不知道我在哪裏查找有問題。有什麼建議麼? – ErocM 2010-09-17 18:00:57

+1

'WebResponse'始終爲空 – SliverNinja 2012-02-08 19:22:12