惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

WordPress大学
WordPress大学
T
Threatpost
阮一峰的网络日志
阮一峰的网络日志
美团技术团队
F
Fortinet All Blogs
The GitHub Blog
The GitHub Blog
月光博客
月光博客
V
Visual Studio Blog
T
Tailwind CSS Blog
Stack Overflow Blog
Stack Overflow Blog
博客园 - 聂微东
Jina AI
Jina AI
J
Java Code Geeks
Martin Fowler
Martin Fowler
大猫的无限游戏
大猫的无限游戏
Recorded Future
Recorded Future
C
Check Point Blog
腾讯CDC
N
Netflix TechBlog - Medium
aimingoo的专栏
aimingoo的专栏
罗磊的独立博客
Hacker News: Ask HN
Hacker News: Ask HN
SecWiki News
SecWiki News
博客园 - Franky
Hacker News - Newest:
Hacker News - Newest: "LLM"
N
News | PayPal Newsroom
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
S
Security @ Cisco Blogs
W
WeLiveSecurity
The Last Watchdog
The Last Watchdog
Cloudbric
Cloudbric
F
Full Disclosure
The Cloudflare Blog
Y
Y Combinator Blog
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
Recent Commits to openclaw:main
Recent Commits to openclaw:main
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Google DeepMind News
Google DeepMind News
MongoDB | Blog
MongoDB | Blog
S
Schneier on Security
Schneier on Security
Schneier on Security
Spread Privacy
Spread Privacy
L
LINUX DO - 热门话题
AI
AI
N
News and Events Feed by Topic
T
Tor Project blog
P
Palo Alto Networks Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
H
Hackread – Cybersecurity News, Data Breaches, AI and More
G
Google Developers Blog

博客园 - silverlightfans

sql server 获取数据库中每个表的磁盘占用情况 扩招的后果(搞笑版) 数据仓库构建实施方法及步骤(转载) treeview非xml数据源绑定 VS 2008 JavaScript Intellisense for Silverlight google 的百毒视频,巨搞笑啊,不知道是不是真的 国际支付平台又添新成员Amazon FPS asp.net 客户端回调功能的实现机制探讨(响应部分及可能的优化) asp.net 客户端回调功能的实现机制探讨(请求部分) 黎巴嫩的一位mvp写的一篇文章 关于为什么web service 构造函数只能是无参数构造函数问题的解答 Silverlight:动态从服务器端获取XAML来绘制前台 javascript附加事件,ff 和 ie 网易的高级提示功能 asp.net ajax 包装得似乎有些过分 PageMethods未定义 的解决 微软为google修改Vista 最好不要使用百分比宽高来创建silverlight 利用Tiny Framework 从托管代码中直接操作页面的 DOM元素
Silverlight:一个IE浏览器
silverlightfans · 2007-06-19 · via 博客园 - silverlightfans

自从silverlight出来以后,一直在关注这个技术,也参看了他们的一些具体实现代码,给我的一个总体的印象就是silverlight就是一个浏览器!

我觉得浏览器的最主要的3个功能,第一个就是发起和接收http连接,第二解析html,渲染页面效果,第三,集成脚本语言,控制页面元素。第一个功能发起http连接是比较容易的,但是第二个将那些与定义好的tag解析成页面,这就是一个非常核心的技术,我认为也是浏览器开发的一个难点。而silverlight的一个最核心的技术也是这个:将XAML解析,并渲染到界面。不过有一点浏览器的定位很复杂,相对,绝对,浮动,页面版式的变动特别复杂,而silverlight只是用了像素定位,那就简单多了。类似html,XAML把Carvas作为了根节点,然后有按钮标签,文本标签等等,类似于html.还有就是在XAML中调用外部javascript的方法很简单:例如在silverlight的一个媒体元素上,有这样一段标签:

<MediaElement

      x:Name="ouch5"

      Source="assets/ouch5.wma" AutoPlay="false" Width="0" Height="0"

      MediaEnded="javascript:SoundEnded"/>

看看媒体元素的MediaEnded事件是这样直接调用了外部的js函数,再来看看这段js函数是怎样写的:

function SoundEnded(sender,args)

{

    sender.stop();

    sender.position = "00:00:00";

}

这种调用js的机制就和在button的 onclick事件里的没多少区别,并且silverlight更加趋向于.net中的事件处理机制,有发送者对象和事件参数,感觉非常完美。

然后我们再来看看javascript是怎样操作silverlight中的对象的。

silverlight = document.getElementById("agControl1");

这段代码是获取silverlight在页面上的引用,agControl1 是你在使用silverlight脚本创建代码里给它赋值的id.

var button = silverlight.content.findName("button");

这段代码就直接在silverlight中的button控件的引用,然后再对它的属性进行相关操作。

silverlight.content.findName("button");

这句话跟getElementById没有什么区别。

总结:silverlight非常适合于那些从事网页美工,设计师工作的人转来学习silverlight,因为他是基于XAML的,就类似于html,只要你把XAML的里面的标签就像掌握HTML的标签一样掌握了,写起来将非常容易,当然你也可以使用工具expression来可视化编写XAML,就像使用dreamweaver来编写html一样。另外访问操作silverlight编程体验类似于DOM操作,面向对象的访问方式,对网页编程人员来说学习成本非常少,很容易转来从事silverlight开发。