WPF中如何清除WebBrowser控件

11

我正在使用以下链接中的代码:在WPF WebBrowser控件中显示字符串中的HTML

它的效果很好,但是当我删除包含HTML的项目时,e.NewValue 变成了 null,然后我就会收到一个异常。有没有一种方法可以将WebBrowser控件返回到空白屏幕?


1
我也发现这很令人困扰,考虑到微软的文档本身指出:“如果text参数为nullWebBrowser会导航到一个空白文档(“about:blank”)。”显然不是这种情况...同时引用了“**.NET Framework**自3.0以来可用”,我使用的是4.0。 - OhBeWise
2个回答

21
我发现了这个,有更好的吗?
if (wb != null)
{
    if (e.NewValue != null)
        wb.NavigateToString(e.NewValue as string);
    else
        wb.Navigate("about:blank");
}

编辑:

正如poby在评论中提到的那样,对于.NET 4+,请使用:

if (wb != null)
{
    if (e.NewValue != null)
        wb.NavigateToString(e.NewValue as string);
    else
        wb.Navigate((Uri)null);
}

在 .Net 3.5 中: 使用 wb.Navigate(null) 而不是 wb.Navigate("about:blank") - Remco te Wierik
哦,很酷,我得试一试。谢谢更新! - mikelt21
1
我正在使用 .Net 4.0,而 wb.Navigate(null) 对于两个方法重载来说是有歧义的。尝试使用 wb.Navigate(string.Empty) 也会失败,因为 string.Empty 是一个无效的 Uri。提供的解决方案虽然可行,但我改为检查 !string.IsNullOrEmpty(e.NewValue.ToString()) - OhBeWise
10
对于.NET 4及以上版本,请使用wb.Navigate((Uri)null),这样可以避免歧义,并且非常有效。 :) - poby

0

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