Il WebBrowser
ha un metodo NavigateToString che è possibile utilizzare per navigare nel contenuto HTML. Se si vuole essere in grado di legarsi ad esso, è possibile creare un proprietà associata che può solo chiamare il metodo quando il valore cambia:
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);
}
}
E lo si dovrebbe utilizzare in questo modo (dove lcl
è il xmlns-namespace -alias):
<WebBrowser lcl:BrowserBehavior.Html="{Binding HtmlToDisplay}" />
fonte
2010-04-06 15:54:45
Il secondo argomento per OnHtmlChanged deve essere di tipo DependencyPropertyChangedEventArgs. –
Adam, hai ragione, fissato per riflettere questo. Grazie! –
Ho aggiunto questo al mio codice ma non mi permette di modificare (una funzionalità richiesta). Sono abbastanza nuovo per wpf quindi non sono sicuro di cosa cambiare per permettermi di modificare l'html. –