silverlight html 传参,Silverlight与HTML双向交互

Silverlight具备很好的用户体验,但有时需要在页面的布局上进行特殊处理,比如作为webpart集成到Sharepoint中等等。

HTML和Silverlight之间的双向交互可以更灵活的使用Silverlight进行开发,上午摸索了一下,记录在此。

一,向Silverlight传递数据,实现个性化加载

Silverlight在HTML中的引用是:

Get Microsoft Silverlight

这种引用插件的方式提供了一系列的参数来实现个性加载,上面的代码中我们加了一行参数

我们可以在Silverlight中处理这些参数,打开Silverlight应用程序的App代码文件,加上接收参数的代码

privatevoid Application_Startup(objectsender, StartupEventArgs e)

{if(e.InitParams.Count !=0)

{

foreach(var item in e.InitParams)

{

this.Resources.Add(item.Key, item.Value);

}

}

this.RootVisual=newMainPage();

}

我们看到对e.InitParams的处理,即可得到了HTML中传进来的参数,实现个性化加载:

if(App.Current.Resources["CategoryId"]!=null)

{intcateId=int.Parse(App.Current.Resources["CategoryId"].ToString());

CategoryItem c=newCategoryItem();

c.CategoryID=cateId;

this.gridOfList.Children.Add(c);

}

二,Silverlight调用HTML中的脚本资源,实现自身的样式等修改

首先我们可以在加载Silverlight组件的页面上编写一段Javascript脚本

functionInvokePlayer(videoId) {

document.getElementById("divCategory").style.display="none";

var player=document.getElementById("divPlayer");

player.style.width="100%";

player.style.height="600px";

}

怎么在Silverlight中调用这个脚本呢?我们可以在某个事件中调用Silverlight提供的类方法

System.Windows.Browser.HtmlPage.Window.Invoke("InvokePlayer", videoId);

当然类似的方法还有几个:

(HtmlPage.Window.GetProperty("InvokePlayer")asScriptObject)InvokeSelf("Good Function!");HtmlPage.Window.Eval("document.getElementById('result')")asHtmlElement…

即可实现调用脚本。经过以上的两个方法即可实现HTML和Silverlight之间双向传递数据的功能。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值