Я думаю, что лучше всего исправить закрепленное свойство, чтобы оно работало правильно.Вот предложение:
private static void OnHtmlChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
{
var browser = d as WebBrowser;
if(browser == null)
return;
var html = e.NewValue.ToString();
try
{
browser.NavigateToString(html);
}
catch (Exception ex)
{
browser.Loaded += (s,e3) =>
{
browser.NavigateToString(html);
}
}
}
Приведенный выше код пытается отобразить HTML-код. Если генерируется исключение, обрабатывается событие Loaded (которое происходит, когда элемент управления отображается в визуальном дереве), затемHTML предоставляется.
Возможно, есть лучшие методы, чем try / catch, стоит проверить API для WebControl
.Тем не менее, выше должно работать.