Silverlight 5(C#)初探
来源:互联网 发布:软件多开器电脑版 编辑:程序博客网 时间:2024/05/16 09:34
接了个单子,非要用Silverlight 5来作一个项目,之前从来没接触过这东西,为了工作,硬着头皮也要上了。摸索了一晚上,大至整理出一些项目中需要的东西,以下作为初探记录:
Silverlight 5与Javascript的交谈方式
Silverlight 5属于客户端的东西,客户端的东西与服务器端交流,第一时间想到了基于javascript的ajax这个万能胶,所以先从Silverlight 5与Javascript交互方式入手。
一、Silverlight 5发言,Javascript倾听
从Silverlight 5里向Javascript发送程序运行请求。Silverlight 5端代码具体如下:
HtmlPage.Window.Invoke("Javascript函数方式", "传值-Oyiboy");
通过以上代码可以直接在Silverlight 5里运行Javascript的脚本代码,并发送必要的数据出来。
二、Javascript发言,Silverlight 5倾听
Javascript使用ajax获取服务器端数据后发送给Silverlight 5,以达到Silverlight 5与服务器端的交互效果。Silverlight 5端代码具体如下:
//设置值 [ScriptableMember()]//这行是关键,必须有这个javascript才能请求到这个方法 public void setVal(string D) { this.textView.Text = D; } //javascript主动要求返回值 [ScriptableMember()] public string returnVal() { return this.textView.Text; }
Html代码调整:需要在Silverlight 5插件的object代码内里添加以下参数设置句,以达到插件在加载后获取siliverlight对象。
<param name="onLoad" value="siliverLoaded" />
Javascript代码具体如下:
//siliverlight对象 var siliverlightObj = null; //上面那个HTML代码内设置的Silverlight 5 onLoad事件触发的函数 function siliverLoaded(sender, args) { siliverlightObj = sender.getHost(); } //以下代码中的.buttonSet和.buttonReu是两个带这些class的按钮,按钮就不详细写出来了 //这个是运行Silverlight 5内的setVal方法 $(".buttonSet").click(function () { siliverlightObj.Content.Main.setVal("javascript传入值-Oyiboy"); }) //这个是运行Silverlight 5内的returnVal方法 $(".buttonReu").click(function () { alert(siliverlightObj.Content.Main.returnVal()); });
以上几个方式,灵活使用的活基本上就完全解决了Silverlight 5与服务器端之间的交流,好吧,虽然这篇的东西的主题是Silverlight 5与Javascript,但最终目的还是Silverlight 5与服务器端的交互,反正ajax也不是什么新物,所以就跳过了。
感想:通过Silverlight 5的对象siliverlightObj.Content.Main这一大窜东西来看,siliverlightObj还能作更多的事了,具体还要慢慢摸索了,如果以后有需要用到的话,还可能会出这个的说明文章吧,或许。
2015-07-10补漏:
关于siliverlightObj.Content.Main中的Main是指在Silverlight 中app.xaml的Application_Startup事件中注册的访问名称,具体代码如下:
private void Application_Startup(object sender, StartupEventArgs e) { this.RootVisual = new MainPage(); System.Windows.Browser.HtmlPage.RegisterScriptableObject("Main", this.RootVisual); }
从代码中可知,如果有多个xaml页的话,只要在这里注册不同的名称就可以引用不同xaml页内声明的Javascript方法了。
刚刚整理代码时在APP.xaml发现这句代码才想起把这个给漏了,今天补回。
- Silverlight 5(C#)初探
- Silverlight Spy初探
- 初探Silverlight with WinCE7
- Silverlight 4 初探(一)
- 抓取网页中的Silverlight数据初探
- select初探(c/c++)
- c#:silverlight &javascript交互
- 游戏人生Silverlight(5) - 星际竞技场[Silverlight 2.0(c#, Farseer Physics Engine)]
- 游戏人生Silverlight(5) - 星际竞技场[Silverlight 2.0(c#, Farseer Physics Engine)]
- C#网络编程初探
- C#网络编程初探
- C#网络编程初探
- C#网络编程初探
- C语言指针初探
- C#网络编程初探
- 初探C++(第一步)
- C++_STL_stack_初探
- rabbitmq-c初探
- Scrollview嵌套GridView的完美解决方案
- UVa 10377 - Maze Traversal
- (Java 功能代码)java去除List中重复数据之Object对象
- ansys常见命令集合
- 指针浅谈
- Silverlight 5(C#)初探
- 设计模式六大原则(5):迪米特法则
- 收藏的博客
- 用html5模拟的汉诺塔
- 微分享从零开始
- Senium 2.0 通过webdriver提供的api完成各种验证操作
- 在这个拼爹、拼钱的时代,没有富爸爸、没有官爸爸,更没有干爹,我们拼什么?
- 选择排序与冒泡排序
- GCD