Ric*_*nop 7 silverlight silverlight-4.0
我需要在Silverlight应用程序中显示一些基本的HTML(只是一些段落,无序列表和超链接).我该怎么办呢?
使用哪种控件?
请尝试以下链接:http://www.wintellect.com/CS/blogs/jprosise/archive/2009/12/22/silverlight-4-s-new-html-hosting-support.aspx
以下是相关部分:
Silverlight 4为平台带来的另一项新功能是能够在Silverlight控件中托管HTML内容.这种支持不仅限于静态HTML内容; 内容可以是交互式的,可以包含脚本.它甚至可以是Flash内容或包含其他Silverlight控件的内容.
要在Silverlight中托管HTML内容,您可以使用WebBrowser控件或HtmlBrush.显示HTML内容的一种方法是启动WebBrowser控件并将其指向URL:
<WebBrowser x:Name="WebBrowserControl" Source="http://www.bing.com" />
Run Code Online (Sandbox Code Playgroud)
另一种方法是调用NavigateToString并将一串内容传递给WebBrowser控件:
WebBrowserControl.NavigateToString("<h1>Hello, Silverlight</h1>");
Run Code Online (Sandbox Code Playgroud)
浏览器内应用程序无法使用HTML托管(仅适用于浏览器外的应用程序),如果OOB缺少提升权限,则只能显示来自与Silverlight应用程序相同的域的内容.但是,您可以使用一个小技巧来显示在没有提升权限的情况下运行的OOB中的跨域内容 - 只需将针对远程内容的IFRAME传递给NavigateToString:
WebBrowserControl.NavigateToString("<iframe src=\"http://www.bing.com\" style=\"width: 100%; height: 100%\"></iframe>");
Run Code Online (Sandbox Code Playgroud)
您也可以使用HtmlBrush呈现HTML内容.以下XAML代码段绘制了一个Rectangle,其中包含从Bing检索到的内容:
<WebBrowser x:Name="WebBrowserControl" Source="http://www.bing.com" />
<Rectangle>
<Rectangle.Fill>
<HtmlBrush SourceName="WebBrowserControl" />
</Rectangle.Fill>
</Rectangle>
Run Code Online (Sandbox Code Playgroud)
WebBrowser和HtmlBrush之间的一个区别是前者显示"实时"内容,而后者则不显示.另一个区别是HtmlBrush可以应用变换,而WebBrowser则不能.对于涉及HTML内容的时髦视觉效果,如在PDC上演示的HTML拼图,您可能会发现自己使用的是HtmlBrush.要显示实时的交互式内容,您会发现WebBrowser更有用.
关于WebBrowser控件的一个非常酷的事情是,您可以使用其InvokeScript方法在控件托管的内容中调用JavaScript函数.相反,在WebBrowser控件中托管的JavaScript可以使用window.external.Notify来引发可以在C#中处理的ScriptNotify事件.
| 归档时间: |
|
| 查看次数: |
3100 次 |
| 最近记录: |