Sil“.NET研究”verlight与HTML双向交互

  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上海闵行企业网站设计与制作="color: #800000;">" />

  我们可以在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);
                }
    上海网站建设        }
        &n上海徐汇企业网站制作bsp;   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脚本

function InvokePlayer(videoId) {
            document.getElementById("divCategory").style.display = "none";
         &nbsp上海企业网站设计与制作;  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之间双向传递数据的功能。

时间: 2024-10-07 12:26:33

Sil“.NET研究”verlight与HTML双向交互的相关文章

案例分析:Sil“.NET研究”verlight在中国人寿的应用

笔者自2003年首次听到Macromedia公司提起RIA(富互联网应用)一词到现在整整7年了.一度被认为是互联网应用趋势的RIA经历了7年之痒,但仍然没有在互联网上得到大规模普及,特别是企业应用就更加少见.做个不恰当的比喻,传统基于Html的应用就像互联网应用中的绿叶一样,而RIA技术由于酷炫的用户体验效果就像是美丽的花朵.现在开心网和腾讯QQ等商业应用中已经运用了RIA技术在其社交网站中得到应用,但这毕竟还是少数,大多数互联网应用特别是企业级应用仍然选择传统高稳定性与高响应能力的Html应用

SharePoint 2010 整合Sil“.NET研究”verlight 4应用 - 任务管理

SharePoint 2010可以与Silverlight实现紧密集成.不管是在浏览器中运行的Silverlight程序还是单独的一个Silverlight程序,都能与SharePoint 2010实现很好的整合.本文中我们将实现一个Silverlight和SharePoint高度整合的例子,通过SharePoint 2010客户端对象模型访问SharePoint任务列表.同时,我们还将学习如何通过SharePoint自带的Silverlight Web部件来宿主Silverlight应用.下图

Sil“.NET研究”verlight 游戏开发小技巧:动感小菜单2

动感小菜单其实是想模仿Apple的菜单按钮设计制作,但是画虎不成反类犬,看起来有点别扭,昨天各位园友提了这方面的建议,感觉太硬如果加入动画可能更好,非常感谢各位,而今天这篇的动感小菜单2,让按钮更加动感"柔"顺:)期望能做的更好吧. 我们可以直接借助昨天的工程,在上面的基础上修改,打开昨天的工程(Silverlight 游戏开发小技巧:动感小菜单): 直接选定一个StackPanel的Group,然后按住Alt键复制一个,为了方便编程,这次我们将它制作成一个控件: 在结构里面直接选择刚

一起谈.NET技术,Silverlight与HTML双向交互

Silverlight具备很好的用户体验,但有时需要在页面的布局上进行特殊处理,比如作为webpart集成到Sharepoint中等等. HTML和Silverlight之间的双向交互可以更灵活的使用Silverlight进行开发,上午摸索了一下,记录在此. 一,向Silverlight传递数据,实现个性化加载 Silverlight在HTML中的引用是: <object data="data:application/x-silverlight-2," type="ap

用户研究经验谈:交互设计避免教条主义与想当然

文章描述:细说"用户分类":如何避免教条主义与想当然. 今天学习白鸦的微博时看到一段话,颇有共鸣:"下午又被问道:你这个产品的用户年龄主要集中在多少? 我又没具体回答上来.因为真的不关心,我只知道在大网购人群里面就行,相对于年龄这样的人口属性我更关注用户的行为属性,比如他网购的被动和主动比例.是不是喜欢比较.平均消费额.消费类目.上网时间.上不上微博".恰巧前几天看到Shimu的博客上也在讨论这一问题,谈及了对一些流行的用户分类方法的质疑,加之在我的工作中也经常遇到

交互设计中的设计方案记分对比法

  今天@言覃某人 给同学们介绍一个特别高效实用的方法,当遇到场景较多或团队有争议的设计点都可以用这个方法,帮交互设计师们理清思路,达成共识并做出最可能正确的设计决定. 交互设计中,为什么需要这种方法? 在交互设计工作中经常会遇到这样的问题,某些位置的设计牵扯到比较复杂的场景,要考虑的因素比较多,这些设计点往往是最容易引起争议的,因为团队成员不一定都能快速了解全部的场景和因素,于是只能根据自己能够想到的个别场景与因素来对设计作出判断,最终团队之间形成意见分歧,每个人都不能宏观地掌握所有的场景和因

用户研究:如何面对产品的定性和定量分析

因为工作需要,经常做风险性分析与效能评估,对于用户研究同学可能更专业的知道定性分析与定量分析,同样的,产品经理.交互设计.用户研究三个同学对这个话题也都应该敏感.但是他们是在产品不同阶段有所侧重点的关注和关心对产品的定性与定量分析. 我们的产品经理,交互设计还是用户研究等同学经常对一个问题争论不休,究其缘由无非我们审视产品的视觉角度不同,其实,说实在话,没有绝对的对错,难道不是吗?尤其是作为产品经理,在项目当中不应该是辩解者的姿态,而应该是事务推动型的控制平衡者. 今天简单聊聊如何面对产品的定性

剖析 ADO.NET 批处理更新(深入研究数据访问)

ado|访问|数据 ADO.NET 应用程序和基础数据源之间的交互基于一个具有双向信道的双体系结构.您可以使用各个特定于提供程序的命令或批处理更新过程来访问数据源,以读取和写入行.在这两种情况下,数据访问都会产生完全双向绑定,并涉及各种不同的对象和方法.您可以使用如 SqlCommand 和 OleDbCommand 等命令类来执行单个命令.可使用数据适配器对象来下载断开连接的数据,提交更新的行集.虽然 "数据集" 是数据适配器用于返回和提交记录块的容器对象,但各个命令通过数据读取器对

交互体验前世今生

吃过晚饭出去散步,看到楼下小朋友捧着iPad戳来划去,感叹现在的孩子真是幸福.且不说锦衣足食营养过剩,在娱乐.教育的手段上,也空前的丰富.平板电脑和触摸设备的流行,在寓教于乐的同时,也对目前交互设备的进化起到了推动作用.通过观察现在的小朋友玩iPad跟以前我们小时候玩游戏的对比,我们能发现,从简单的孩之宝变形金刚.魔方等儿童玩具,收音机电视机等媒体产品,控制器连接的游戏机,再到通过键盘鼠标操作的个人电脑,现在到触摸屏满天飞的移动设备,产品的交互体验也一直在发生变化. 从早期的穿孔纸带.面板开关和