【问题标题】:WPF Webbrowser control issue when no internet没有互联网时的 WPF Webbrowser 控制问题
【发布时间】:2013-08-15 14:05:24
【问题描述】:

我的项目中有一个 Web 浏览器控件。效果很好!但是,如果我断开与 Internet 的连接然后打开项目,IE 会打开并显示标准无法显示网页。

我希望我的项目中的 Web 浏览器控件显示此消息,并且在 Internet 连接丢失时不弹出 IE 浏览器窗口。

谢谢!

【问题讨论】:

  • IE 不应该在这种情况下打开;错误页面应显示在浏览器控件本身内。如果没有任何进一步的信息(例如您的代码),任何人都不太可能在这方面为您提供帮助。

标签: wpf vb.net internet-explorer browser webbrowser-control


【解决方案1】:

您可以通过导入 System.Net.NetworkInformation 命名空间来做到这一点。 NetworkChange 类公开了一个名为 NetworkAvailabilityChanged 的事件,该事件负责通知应用程序连接状态发生变化。请找到下面的sn-p。如果有用请标记答案。

public partial class MainWindow : Window
{
    public bool IsAvailable { get; set; }

    public MainWindow()
    {
        InitializeComponent();
        NetworkChange.NetworkAvailabilityChanged += NetworkChange_NetworkAvailabilityChanged;
    }

    void NetworkChange_NetworkAvailabilityChanged(object sender, NetworkAvailabilityEventArgs e)
    {
        IsAvailable = e.IsAvailable;
    }


    private void BrowseButton_Click(object sender, RoutedEventArgs e)
    {
        if (IsAvailable)
        {
            WebBrowser1.Navigate(TextBox1.Text);    
        }
        else
        {
            MessageBox.Show("Your Popup Message");
        }
    }
}

【讨论】:

    【解决方案2】:

    我没有看到我的机器上打开了 IE,但我确实看到了在 WebBrowser 控件中显示的正常 IE 错误消息。

    我相信您可以通过处理 WebBrowser 的 Navigated 事件并查看文档的 url 属性来检测网页未正确加载。这是一些 XAML:

    <WebBrowser Source="http://www.google.com" Navigated="WebBrowser_Navigated" />
    

    还有一点代码(我不做VB,抱歉):

    private void WebBrowser_Navigated(object sender, NavigationEventArgs e) {
        var browser = sender as WebBrowser;
        if (browser != null) {
            var doc = browser.Document as HTMLDocument;
            if (doc != null)
                MessageBox.Show(doc.url);
        }
    }
    

    在我的机器上,当导航失败时,我得到了这个 URL:

    res:ieframe.dll/navcancl.html#http://www.google.com

    虽然我认为我们不能指望 URL 一直都是这样,但我敢打赌,您可以检查它并确定它不是您要查找的 URL。事实上,“http:”现在是“res:”。当您看到这种情况发生时(并没有预料到),您可以让浏览器指向本地源以显示消息。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-11-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-12
    相关资源
    最近更新 更多