2010-10-03 12 views

Antwort

6

diesen Link Versuchen Sie für den Anfang: http://www.wintellect.com/CS/blogs/jprosise/archive/2009/12/22/silverlight-4-s-new-html-hosting-support.aspx

Hier ist der relevante Teil:

die Fähigkeit, HTML-Inhalte in einem Silverlight Ein weiteres der neuen Funktionen, die 4 bringt die Plattform Silverlight ist Gastgeber Kontrolle. Diese Unterstützung ist nicht auf statischen HTML-Inhalt beschränkt. Der Inhalt kann interaktiv sein und Skript enthalten. Es kann sogar Flash-Inhalte oder Inhalte sein, die andere Silverlight-Steuerelemente enthalten.

Um HTML-Inhalt in Silverlight zu hosten, können Sie entweder einen WebBrowser Steuerelement oder einen HtmlBrush verwenden. Eine Möglichkeit, HTML-Inhalt angezeigt ist, um Feuer ein WebBrowser-Steuerelement und verweisen Sie auf eine URL:

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

Einen anderen Weg, es zu tun ist NavigateToString zu rufen und eine Reihe von Inhalt zum Pass WebBrowser-Steuerelement:

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

HTML-Hosting ist nicht verfügbar in-Browser-Anwendungen (es gilt für Nur Out-of-Browser-Anwendungen), und wenn eine OOB keine erhöhten Berechtigungen aufweist, kann nur Inhalt angezeigt werden, der aus der gleichen Domäne wie die Silverlight-Anwendung stammt. Sie können jedoch ein wenig Trick verwenden Cross-Domain-Inhalte in OOBs anzuzeigen, ohne erhöhten laufen permissions-einfach ein IFRAME-Targeting die Fernbedienung Inhalt NavigateToString passieren:

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

Sie machen können HTML-Inhalt auch mit HtmlBrush. Der folgende XAML Schnipsel zeichnet ein Rechteck mit Inhalt von Bing Introduction:

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

Ein Unterschied zwischen Web-Browser und HtmlBrush ist, dass die ehemalige Displays „lebt“ Inhalt, während die letzteren nicht. Ein weiterer Unterschied ist, dass HtmlBrush Transformationen angewendet haben kann, während WebBrowser nicht kann. Für knifflige visuelle Effekte mit HTML-Inhalten wie dem HTML-Puzzle , das auf dem PDC vorgeführt wird, werden Sie wahrscheinlich feststellen, dass Sie HtmlBrush verwenden. Um interaktiven Inhalt anzuzeigen, finden Sie stattdessen WebBrowser nützlicher.

Eines der wirklich coolen Dinge über das WebBrowser-Steuerelement ist, dass Sie können Sie die InvokeScript-Methode verwenden, um JavaScript-Funktionen in Inhalte von dem Steuerelement gehostet aufrufen.Umgekehrt kann JavaScript, das in einem WebBrowser-Steuerelement gehostet wird, window.external.Notify verwenden, um ScriptNotify-Ereignisse auszulösen, die in C# behandelt werden können.

2

Sie könnten HtmlBrush oder Webbrowser-Steuerelement verwenden.