有好几次遇到有的同志们问,怎么在Silverlight中嵌入其他页面如:html,aspx或jsp页面,这里写一个简单的使用方法,供大家参考:
下载第三方控件的dll,这里提供一个下载地址:
http://download.csdn.net/source/3231944
下面是这个工具的的介绍:Silverlight
下面是配置步骤:
1):将下载资源中的dll(Divelements.SilverlightTools.dll ),添加到Silverlight项目的引用中去。
2):在工具箱上右键 ,选择“选择项”,然后浏览到上面那个dll文件所在的位置,点击添加即可。
3):将刚才新添加的组件拖到silverlight编辑页面中,这时自动添加了对命名空间的引用
xmlns:divtools="clr-namespace:Divelements.SilverlightTools;assembly=Divelements.SilverlightTools"
4):在要嵌入的位置加入HtmlHost组件,例如:
<Grid>
<divtools:HtmlHost x:Name="htmlPlaceholderHost1" SourceUri="http://www.baidu.com" Margin="-4,21,-1,0"/>
</Grid>
这个控件的SourceUri属性即是指向你的其他页面信息,只要给一个Uri地址即可。
5):最后不要忘了在silverlight 的宿主页,加上 <param name="Windowless" value ="true" />,否则会弹出窗口报错“You must be using the Silverlight plugin in windowless mode to use this control.”,示例如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head> <title>TileViewAnimation</title> <style type="text/css"> html, body { height: 100%; overflow: auto; } body { padding: 0; margin: 0; } #silverlightControlHost { height: 100%; text-align:center; } </style> <script type="text/javascript" src="Silverlight.js"></script> <script type="text/javascript"> function onSilverlightError(sender, args) { var appSource = ""; if (sender != null && sender != 0) { appSource = sender.getHost().Source; } var errorType = args.ErrorType; var iErrorCode = args.ErrorCode; if (errorType == "ImageError" || errorType == "MediaError") { return; } var errMsg = "Silverlight 应用程序中未处理的错误 " + appSource + "\n" ; errMsg += "代码: "+ iErrorCode + " \n"; errMsg += "类别: " + errorType + " \n"; errMsg += "消息: " + args.ErrorMessage + " \n"; if (errorType == "ParserError") { errMsg += "文件: " + args.xamlFile + " \n"; errMsg += "行: " + args.lineNumber + " \n"; errMsg += "位置: " + args.charPosition + " \n"; } else if (errorType == "RuntimeError") { if (args.lineNumber != 0) { errMsg += "行: " + args.lineNumber + " \n"; errMsg += "位置: " + args.charPosition + " \n"; } errMsg += "方法名称: " + args.methodName + " \n"; } 引发新错误(errMsg); } </script> </head> <body> <form id="form1" runat="server" style="height:100%"> <div id="silverlightControlHost"> <object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="100%" height="100%"> <param name="source" value="ClientBin/TileViewAnimation.xap"/> <param name="onError" value="onSilverlightError" /> <param name="background" value="white" /> <param name="minRuntimeVersion" value="4.0.50401.0" /> <param name="autoUpgrade" value="true" /> <param name="windowless" value="true"/> <!--这句话很重要必须得加--> <a href="http://go.microsoft.com/fwlink/?LinkID=149156&v=4.0.50401.0" style="text-decoration:none"> <img src="http://go.microsoft.com/fwlink/?LinkId=161376" alt="获取 Microsoft Silverlight" style="border-style:none"/> </a> </object><iframe id="_sl_historyFrame" style="visibility:hidden;height:0px;width:0px;border:0px"></iframe></div> </form> </body> </html>
贴一个我利用该控件 的一个四画面视频界面。