Отображение html из строки в элементе управления WPF WebBrowser
Объект контекста данных содержит свойство string, которое возвращает html, который должен отображаться в элементе управления WebBrowser; Я не могу найти какие-либо свойства WebBrowser для привязки. Любые идеи?
Спасибо!
Ответ 1
WebBrowser имеет метод NavigateToString, который можно использовать для перехода к содержимому HTML. Если вы хотите иметь возможность привязываться к нему, вы можете создать прикрепленное свойство, которое может просто вызвать метод при изменении значения:
public static class BrowserBehavior
{
public static readonly DependencyProperty HtmlProperty = DependencyProperty.RegisterAttached(
"Html",
typeof(string),
typeof(BrowserBehavior),
new FrameworkPropertyMetadata(OnHtmlChanged));
[AttachedPropertyBrowsableForType(typeof(WebBrowser))]
public static string GetHtml(WebBrowser d)
{
return (string)d.GetValue(HtmlProperty);
}
public static void SetHtml(WebBrowser d, string value)
{
d.SetValue(HtmlProperty, value);
}
static void OnHtmlChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
{
WebBrowser wb = d as WebBrowser;
if (wb != null)
wb.NavigateToString(e.NewValue as string);
}
}
И вы будете использовать его так (где lcl - псевдоним xmlns-namespace-alias):