`
梁利锋
  • 浏览: 81872 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

Silverlight初体验

阅读更多
  Silverlight 3 正式版推出,想来应该算是比较成熟了吧,以前也没有仔细看过 WPF 或 Silverlight,于是准备用它移植一下以前用 Flash 写的黑白棋。经过 2 天左右,基本完成,功能和原 Flash 基本相同,代码也基本上是把 ActionScript 转成 C#。另外,也用它试着搭建一个 WEB 程序。下面是一些感想。

  基本上,搜索引擎友好只是扯淡。xaml 文件固然是文本,可是,却是最无聊的文本,也是搜索引擎要避免索引的东西,对于一个典型的 RIA 应用来说,真正应该被索引的,其实都是通过 Web Service 之类的技术传输的内容,只是,即使搜索引擎可以索引 Web Service,它又怎么知道要正常阅读这些内容,究竟应该给用户哪个 URL 呢?

  Out of browser 功能还是不错的,不过,和 Flash EXE 不同,第一次还是需要在 WEB 上执行,然后再选择脱离浏览器,似乎这样可以自动升级吧。总的来说,我还是喜欢这个功能的,毕竟只要 4M 的 Silverlight 安装包,就可以完成 WPF/.net 3.5 的大部分客户端功能。不过,似乎总是在一个窗口中,如果要用 Silverlight 做一个 IM 软件,就会象是在虚拟机中执行一样 —— 现在,虚拟机也可以支持无缝运行了,比如 Windows 7 中执行兼容老版本程序的方法,VirtualBox 中的无缝模式等,也许 Silverlight 以后也会做到吧。

  可以播放 H.264 的视频,却没有对于内嵌声音的支持,如果要播放提示音,难道也必须使用 MediaElement 通过 http 加载并播放么?这基本上给我的感觉是,Windows 中的提示音,比如“清空回收站”会启动 Media Player 来播放……

  Silverlight 3 支持鼠标滚轮事件了,但是,Silverlight 3 的所有控件都不支持鼠标滚轮,难道要所有的开发人员都去开发自己的控件集?当然,重写 ScrollViewer 并不算太复杂,问题是,所有其他使用了 ScrollViewer 的系统控件怎么办呢?据说以前不支持滚轮是因为滚轮是浏览器事件,不知道 Flex 的程序是否也不支持鼠标滚轮呢?

  Visual Studio 2008 的 Silverlight 3 插件完全不支持可视化了,感觉动画制作和 Flash 比起来,麻烦很多,看了一些文档,都没有介绍连续动画的,我于是写了好几个 OnCompleted 事件代码去启动另一个 SotryBoard。后来在 Expression 中找到方法,看了它生成的代码,似乎是使用 EasingDoubleKeyFrame 的 KeyTime 来控制时间,但是格式和我想象中的顺序方式不太一样,不过,想来既然可以可视化编辑,也就不需要再去看它的代码了吧。

  一个 UserControl,设置 Width 和 Height 后,只有自己被改变,其内部控件丝毫不受影响,即使 UserControl 已经 Width 和 Height 都是 0 了,内部控件还是在界面上面……所以,对于这个只能改用 Transform 来处理,不过如果对于 ScaleTransform 命名,然后用此名称,在 xaml 里会提示找不到控件,在 cs 文件里可以编译,却会造成运行时抛出空指针异常,而这种方法,对于非用户控件,是完全正常的。最后,只能在 xaml 中用 (UserControl.RenderTransform).(ScaleTransform.ScaleX) 这种格式来访问,虽然罗嗦,总算是能正常运行。

  本来以为,只要把它的 html 的代码发布到我的网站上,就可以正常显示了,结果发现,什么都没有显示,把 html 源文件倒腾了半天,终于发现,Silverlight 控件不能在其他的 div 或 table 内部,否则就会不显示,也不太明白,加载一个 Silverlight xap 文件,为什么需要那么多 js 脚本,甚至还有一个8K的silverlight.js文件,难道控件本身处理不了?暂时懒得折腾了,就用了一个 iframe 直接加载 html 的方法。

  我记得 Silverlight 加载时缺省会有一个加载进度显示的,不知道什么原因,我的这个应用就是不显示进度,而是白屏3、4秒后,直接进应用了。找了网上的一些自定义加载进度的方法,似乎在 sl3 里也无效,会产生 2 个浏览器错误。以后再看这个问题吧。

  运行结果还行,IE8 和 FireFox 3 都正常。

  总的来说,sl3 还有一些不足,但是用来开发 RIA 的话,似乎够了,只是,我实在无法忍受不能使用鼠标滚轮的应用 —— Ajax 的程序还可以使用滚轮呢!

  这里是我完成的 黑白棋 Silverlight 版,就像上面说的,没有提示音,没有加载进度条,除此之外,倒是都正常的。
0
0
分享到:
评论
2 楼 梁利锋 2010-01-13  
目前没有提供源代码的想法。
1 楼 vieri122 2010-01-12  
楼主的黑白棋能否提供源码?

相关推荐

    silverlight效果

    尽管现在已被HTML5、CSS3和JavaScript等现代Web技术取代,但在2000年代末到2010年代初,Silverlight是构建富互联网应用(RIA)的热门选择。 在"silverlight效果"这个主题中,我们主要关注的是如何利用Silverlight来...

    Hello,SilverLight4

    **银光闪耀:深入探索...无论是初涉Silverlight的新手还是寻求提升的开发者,都能从中受益匪浅。在阅读过程中,结合实际操作和案例分析,将理论知识转化为实践能力,必将在Silverlight开发的道路上走得更远。

    silverLight在vs2005的开发模板

    Silverlight是微软推出的一种轻量级的Web应用程序框架,它主要用来增强网页的交互性和多媒体体验。在2005年,Visual Studio (VS) 2005时期,Silverlight还是初版,即Silverlight 1.1,当时为了方便开发者进行...

    Silverlight3 完美征程(教材)

    《Silverlight3 完美征程》是一本专为初、中级开发者设计的教程,由微软在2009年出版,旨在深入浅出地介绍Silverlight 3这一强大的富互联网应用开发平台。这本书全面覆盖了Silverlight 3的核心概念、技术和实战应用...

    Silverlight实现的台球游戏

    7. **动画效果**:台球击打、滚动、进球等动作都可以通过Silverlight的Storyboards和Timeline类来实现流畅的动画效果,增强游戏体验。 通过以上分析,我们可以看出,利用Silverlight开发台球游戏,不仅考验开发者对...

    App2-Silverlight2系列4

    相较于初代,Silverlight 2提供了更全面的.NET编程模型,支持更多语言,如C#、VB.NET和JavaScript,并且增强了数据绑定和图形渲染能力。 2. **XAML基础** 在Silverlight 2中,XAML(Extensible Application Markup...

    Silverlight 学习资料

    Silverlight是微软推出的一款跨浏览器、跨平台的多媒体框架,旨在为Web应用程序提供丰富的用户体验。它支持运行于Windows和Mac操作系统之上,并兼容多种主流浏览器,如Internet Explorer、Firefox、Safari等。...

    Silverlight 2.0 发现之旅系列课程(3)

    Silverlight,作为一个跨平台、跨浏览器的插件,旨在增强Web应用程序的多媒体体验,尤其是在富互联网应用(RIA)领域。这次的“发现之旅”将深入讲解Silverlight 2.0的核心特性和功能,帮助开发者更好地理解和利用这...

    Silverlight Business Briefing

    Silverlight作为一种前沿的跨平台开发技术,在其发布之初就吸引了众多开发者和内容提供商的关注。它不仅为用户提供了一致且沉浸式的用户体验,也为开发者提供了一套完善的工具和支持体系。尽管随着时间的发展,...

    Pro Silverlight For The Enterprise(PDF完整版本)

    Silverlight在发布之初,尤其受到开发者欢迎,因为它能够跨平台运行,并且具有强大的开发工具支持,如Visual Studio和 Blend。 **主要内容:** 1. **基础概念**:介绍Silverlight的基本架构,包括XAML(Extensible...

    嵌入式系统/ARM技术中的Windows Embedded Standard开发初体验:支持Silverlight的 WES

    通过以上步骤,开发者可以为特定应用场景构建包含Silverlight支持的嵌入式操作系统,从而实现更丰富、交互性强的用户体验。这一过程涉及到组件选择、依赖性检查、编译和验证等关键步骤,是理解WES开发流程的重要实践...

    Windows Embedded Standard开发初体验:支持Silverlight的 WES

    支持Silverlight的Windows Embedded Standard  我们来做Windows Embedded Standard的个操作系统镜像。在开始菜单中找到“Microsoft Windows Embedded Studio”,启动其中的Target Designer。然后再Target Designer...

    初始silverLight2.0

    Silverlight是由微软公司开发的一款跨浏览器、跨平台的插件,主要用于在Web上实现丰富的媒体体验和交互式应用程序。2.0版本是其发展历程中的一个重要里程碑,它极大地扩展了初代的功能,为开发者提供了更强大的工具...

    Windows Phone开发工具初体验

    在本文中,我们将探讨Windows Phone开发工具的初体验,这些工具是针对Windows Phone平台的全新开发环境,旨在为开发者提供创新的用户体验和开发途径。在MIX 2010大会上,微软推出了Windows Phone Developer Tools,...

    Windows Embedded Standard开发初体验:IE的安全限制

     介绍一下Silverlight TV的安全限制,需要注意的是,并不是所有的Silverlight都会遇到这个问题,只有Silverlight TV调用了ActiveX组件,才会遇到这个问题。  这个安全提示在我们平时使用IE时也经常会遇到,点一下...

    嵌入式系统/ARM技术中的Windows Embedded Standard开发初体验:IE的安全限制

     介绍一下Silverlight TV的安全限制,需要注意的是,并不是所有的Silverlight都会遇到这个问题,只有Silverlight TV调用了ActiveX组件,才会遇到这个问题。  这个安全提示在我们平时使用IE时也经常会遇到,点一下...

    Windows Embedded Standard开发初体验五:导入组件数据库

    导入组件数据库 ...  由于导入的文件比较多,可能会延时几秒钟,等看到文件被成功导入的提示后,就可以关闭Component Database Manager,... 在已经创建过一个Target Image之后,创建一个以Silverlight为Shell的Ima

Global site tag (gtag.js) - Google Analytics