.NEt专家博客!

Silverlight与HTML双向交互

上一篇 / 下一篇  2010-12-09 13:42:39 / 个人分类:Silverlight

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

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

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

Silverlight在HTML中的引用是:

<objectdata="data:application/x-silverlight-2,"type="application/x-silverlight-2"width="100%"height="100%"><paramname="source"value="ClientBin/VideoCenter.xap"/><paramname="onError"value="onSilverlightError"/><paramname="background"value="white"/><paramname="minRuntimeVersion"value="4.0.50401.0"/><paramname="autoUpgrade"value="true"/><ahref="http://go.microsoft.com/fwlink/?LinkID=149156&v=4.0.50401.0"style="text-decoration:none"><imgsrc="http://go.microsoft.com/fwlink/?LinkId=161376"alt="Get Microsoft Silverlight"style="border-style.:none"/></a></object>这种引用插件的方式提供了一系列的参数来实现个性加载,上面的代码中我们加了一行参数
<paramname="initParams"value="CategoryId=1"/>
我们可以在Silverlight中处理这些参数,打开Silverlight应用程序的App代码文件,加上接收参数的代码
privatevoidApplication_Startup(objectsender, StartupEventArgs e)
{if(e.InitParams.Count != 0)
{foreach(var itemine.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";varplayer =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") as ScriptObject)InvokeSelf("Good Function!");
HtmlPage.Window.Eval("document.getElementById('result')") as HtmlElement…即可实现调用脚本。
经过以上的两个方法即可实现HTML和Silverlight之间双向传递数据的功能。

TAG:

.NET技术 引用 删除 iDotNetSpace   /   2010-12-09 13:45:31
Silverlight与HTML双向交互这篇文章已被推荐到.NET企业技术交流圈子中。
 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

日历

« 2012-05-22  
  12345
6789101112
13141516171819
20212223242526
2728293031  

数据统计

  • 访问量: 846271
  • 日志数: 3733
  • 影音数: 7
  • 文件数: 1
  • 建立时间: 2008-01-04
  • 更新时间: 2010-12-31

RSS订阅

Open Toolbar