2014-02-27 9 views
5

Ich verwende den Code aus dem folgenden Link zu löschen: Displaying html from string in WPF WebBrowser controlWie WebBrowser-Steuerelement in WPF

Es funktioniert gut, außer wenn ich das Element löschen Sie die HTML enthält, e.NewValue wird null und ich eine Ausnahme erhalten. Gibt es eine Möglichkeit, das WebBrowser-Steuerelement auf einem leeren Bildschirm zurückzugeben?

+0

Ich fand auch dieses beunruhigend, wenn man bedenkt, dass [Microsofts Dokumentation] (https://msdn.microsoft.com/en-us/library/system.windows.controls.webbrowser.navigatetostring (v = vs. 110) .aspx) selbst besagt, dass "Wenn der * text * -Parameter ist ** null **, [WebBrowser] (https://msdn.microsoft.com/en-us/library/system.windows.controls.webbrowser (v = vs.110) .aspx) navigiert zu einem leeren Dokument ("about: blank"). " Offensichtlich nicht der Fall ... Auch zitiert, "**. NET Framework ** Verfügbar seit 3.0," Ich bin auf 4.0. – OhBeWise

Antwort

10

Ich habe das gefunden. Hat jemand etwas besseres?

if (wb != null) 
{ 
    if (e.NewValue != null) 
     wb.NavigateToString(e.NewValue as string); 
    else 
     wb.Navigate("about:blank"); 
} 
+0

In .Net 3.5: wb.Navigate (null) anstelle von wb.Navigate ("about: blank") –

+0

oh cool, ich werde das irgendwann ausprobieren müssen. Danke für das Update! – mikelt21

+1

Ich verwende .Net 4.0 und 'wb.Navigate (null)' ist mehrdeutig für zwei der Methoden Überladungen. Der Versuch "wb.Navigate (string.Empty)" schlägt auch fehl, da "string.Empty" ein ungültiger Uri ist. Die mitgelieferte Lösung reichte aus, obwohl ich stattdessen nach '! String.IsNullOrEmpty (e.NewValue.ToString())' ' – OhBeWise