解决方案
在Silverlight中嵌入HTML、Flash和PDF文件,需要用到一个第三方的组件Divelements.SilverlightTools.dll
首先介绍一下该组件:1、基本特性
组件所在命名空间:Divelements.SilverlightTools
组件常用属性:SourceUri:显示在该组件中的内容的URI。
SourceHtml:用该组件显示的超文本内容。
Document:显示在该组件中的内容的HTML。
组件常用事件:DocumentReady:当在该组件中的内容的HTML加载完毕后触发该事件。2、注意事项
该组件需在windowless模式下才能正常运行。
首先要在服务端文件夹下的SilverlightClientTestPage.aspx文件或SilverlightClientTestPage.html文件中添加该语句:
然后将需要嵌入的Flash文件及PDF文件放置在服务端文件夹的根目录下。
加载Flash文件
1.创建一个Silverlight应用程序的项目XXX
2.在项目中导入Divelements.SilverlightTools.dll第三方组件首先在项目的XXX.Web文件夹下新建一个DLL文件夹,用来存放第三方组件的DLL文件,
然后将Divelements.SilverlightTools.dll复制一份到该DLL文件夹下。在解决方案的References(引用)上右击–>添加引用–>浏览,找到DLL文件夹下的Divelements.SilverlightTools.dll然后确定即可。
3.创建一个加载SWF的UserControl
首先在项目名称上右击–>添加–>新建文件夹,将文件夹名称命名为MyFunction
然后再该文件夹上右击–>添加–>新建项–>选择Silverlight用户控件,文件名称为MySWF.xaml向MySWF.xaml中添加如下内容:
xmlns:divtools=”clr-namespace:Divelements.SilverlightTools;assembly=Divelements.SilverlightTools”
4.在MainPage.xaml.cs中添加如下内容:
// 加载Flash的SWF文件
MySWF swf = new MySWF();
HtmlHost hh = swf.FindName(“myswf”) as HtmlHost;// 使用 FindName 从刚刚作为组件加载的 XAML 页查找命名元素
hh.SourceUri = new Uri(“http://www.xa4006.com/test.swf … ot%3B, UriKind.Absolute);
this.LayoutRoot.Children.Add(swf);