silverlight   发布时间:2022-05-04  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Silverlight与HTML双向交互大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

  Silverlight具备很好的用户体验,但有时需要在页面的布局上进行特殊处理,比如作为webpart集成到Sharepoint中等等。  HTML和Silverlight之间的双向交互可以更灵活的使用Silverlight进行开发,上午摸索了一下,记录在此。 一,向Silverlight传递数据,实现个性化加载 Silverlight在HTML中的引用是:   <object data="d
  Silverlight具备很好的用户体验,但有时需要在页面的布局上进行特殊处理,比如作为webpart集成到Sharepoint中等等。 
HTML和Silverlight之间的双向交互可以更灵活的使用Silverlight进行开发,上午摸索了一下,记录在此
一,向Silverlight传递数据,实现个性化加载
Silverlight在HTML中的引用是:
  <object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="100%" height="100%">
          <param name="source" value="ClientBin/VideoCenter.xap"/>
          <param name="onError" value="onSilverlightError" />
          <param name="BACkground" value="white" />
          <param name="minRuntimeVersion" value="4.0.50401.0" />
          <param name="autoUpgrade" 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="Get Microsoft Silverlight" style="border-style:none"/>
          </a>
</object>
这种引用插件的方式提供了一系列的参数来实现个性加载,上面的代码中我们加了一行参数
  <param name="initParams" value="CategoryId=1" /> 
我们可以在Silverlight中处理这些参数,打开Silverlight应用程序的App代码文件加上接收参数的代码
  private void Application_Startup(object sender,StartupEventArgs E)
        {
            if (e.InitParams.Count != 0)
            { 
                foreach(var item in e.InitParams)
                {
                    this.resources.Add(item.Key,item.value);
                }
            }
            this.RootVisual = new MainPage();
        }
我们看到对e.InitParams的处理,即可得到了HTML中传进来的参数,实现个性化加载:
  if(App.Current.resources["CategoryId"]!=null)
            {
                int catEID = int.Parse(App.Current.resources["CategoryId"].ToString());
                CategoryItem c = new CategoryItem();
                c.CategoryID = catEID; 
                this.gridOfList.Children.Add(c);
            } 
二,Silverlight调用HTML中的脚本资源,实现自身的样式等修改
         首先我们可以在加载Silverlight组件的页面上编写一段Javascript脚本
 @R_280_3816@ InvokePlayer(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") as ScriptObject)InvokeSelf("Good Function!");HtmlPage.Window.Eval("document.getElementById('result')") as HtmlElement… 
即可实现调用脚本。经过以上的两个方法即可实现HTML和Silverlight之间双向传递数据的功能

大佬总结

以上是大佬教程为你收集整理的Silverlight与HTML双向交互全部内容,希望文章能够帮你解决Silverlight与HTML双向交互所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。