2010-10-03 5 views

Répondre

6

Essayez ce lien pour commencer: http://www.wintellect.com/CS/blogs/jprosise/archive/2009/12/22/silverlight-4-s-new-html-hosting-support.aspx

Voici la partie pertinente:

Une autre des nouvelles fonctionnalités que Silverlight 4 apporte à la plate-forme est la capacité d'héberger du contenu HTML dans un Silverlight contrôle. Ce support n'est pas limité au contenu HTML statique. le contenu peut être interactif et peut inclure un script. Il peut même être contenu Flash ou contenu qui inclut d'autres contrôles Silverlight.

Pour héberger du contenu HTML dans Silverlight, vous pouvez utiliser un contrôle WebBrowser ou un HtmlBrush. Une façon d'afficher le contenu HTML est de feu vers le haut un contrôle WebBrowser et pointer vers une URL:

<WebBrowser x:Name="WebBrowserControl" Source="http://www.bing.com" /> 

Une autre façon de le faire est d'appeler NavigateToString et passer une chaîne de contenu à la contrôle WebBrowser:

WebBrowserControl.NavigateToString("<h1>Hello, Silverlight</h1>"); 

hébergement HTML est pas disponible pour des applications dans un navigateur (il applique à applications hors navigateur uniquement), et si un OOB ne dispose pas d'autorisations élevées , il ne peut afficher que le contenu provenant du même domaine que l'application Silverlight. Cependant, vous pouvez utiliser un peu astuce pour afficher le contenu inter-domaines dans OOBs qui fonctionnent sans élevées autorisations simplement passer un IFRAME ciblant le contenu à distance à NavigateToString:

WebBrowserControl.NavigateToString("<iframe src=\"http://www.bing.com\" style=\"width: 100%; height: 100%\"></iframe>"); 

Vous pouvez rendre Contenu HTML avec HtmlBrush, aussi. L'extrait suivant XAML peint un rectangle avec contenu récupéré de Bing:

<WebBrowser x:Name="WebBrowserControl" Source="http://www.bing.com" /> 
<Rectangle> 
    <Rectangle.Fill> 
    <HtmlBrush SourceName="WebBrowserControl" /> 
    </Rectangle.Fill> 
</Rectangle> 

Une différence entre WebBrowser et HtmlBrush est que les anciens affiche « en direct » le contenu, alors que celui-ci ne fonctionne pas. Une autre différence est que HtmlBrush peut avoir des transformées appliquées, alors que WebBrowser ne peut pas. Pour les effets visuels saisissants impliquant un contenu HTML comme le puzzle HTML démo au PDC, vous vous trouverez probablement en utilisant HtmlBrush. Pour afficher du contenu interactif en direct, vous trouverez à la place WebBrowser plus utile. Une des choses vraiment cool sur le contrôle WebBrowser est que vous pouvez utiliser sa méthode InvokeScript pour appeler des fonctions JavaScript dans le contenu hébergé par le contrôle.Inversement, JavaScript hébergé à l'intérieur d'un contrôle WebBrowser peut utiliser window.external.Notify pour déclencher des événements ScriptNotify pouvant être gérés en C#.

2

Vous pouvez utiliser le contrôle HtmlBrush ou webbrowser.

Questions connexes