61 votes

Affichage du code HTML d'une chaîne dans le contrôle WPF WebBrowser

Mon objet de contexte de données contient une propriété de chaîne qui renvoie le code HTML que je dois afficher dans le contrôle WebBrowser. Je ne trouve aucune propriété de WebBrowser à laquelle le lier. Des idées?

Merci!

120voto

Abe Heidebrecht Points 16417

Le WebBrowser a une méthode NavigateToString que vous pouvez utiliser pour accéder au contenu HTML. Si vous souhaitez pouvoir vous y connecter, vous pouvez créer une propriété attachée pouvant simplement appeler la méthode lorsque la valeur change:

 public static readonly DependencyProperty HtmlProperty = DependencyProperty.RegisterAttached(
    "Html",
    typeof(string),
    typeof(PinnedInstrumentsViewModel),
    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);
}
 

Et vous l'utiliseriez comme ceci:

 <WebBrowser lcl:BrowseBehavior.Html="{Binding HtmlToDisplay}" />
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X