Silverlight Alpha 1.1十一月份不会过期

现在从官方网站上下载Silverlight 1.1 Alpha Refresh再装上就不会有过期时间了,对比了一下版本号,两者的版本号分别如下:

原先的版本:
Microsoft Silverlight
Version: 1.1.20813.0
(c) 2007 Microsoft Corporation. All rights reserved.

现在的版本:
Microsoft Silverlight
Version: 1.1.20926.0
(c) 2007 Microsoft Corporation. All rights reserved.

根据官方网站上的说明,Silverlight 1.1的最新版应该是September的Alpha Refresh,但是奇怪的是安装界面上写的居然是“July 2007”………

Silverlight 1.1 Alpha & VS 2008 Beta 2 将于11月1日过期

偶然因为一台计算机的系统时间错误发现的,后来发现其实在Silverlight的License里就说明了:

3.TERM. The term of this agreement is until November 1, 2007 or commercial release of the software, whichever is first.

从MSDN blog上看到说VS 2008的过期时间也是11月1号,只知道内部消息说VS 2008已经有RTM版了,估计11月份会发布VS 2008,不知道十一月份是不是会发布Silverlight 1.1的Beta版?如果是这样的话那就太好了,只剩两天了,如果不发布就只有改系统时间了………

Silverlight播放视频最好选择MMS协议

写了个东西,发现内存的使用会一直上涨,和内存泄漏的状况差不多,一个小时以后内存可以长到300多兆,虚拟内存可以达到300~500兆,然后CPU到使用率也非常的高。后来想想C#有内存自动回收机制,问题应该不会在C#上,那估计就是Silverlight播视频的问题了。

于是用同样一部电影分别开了两个服务:一个HTTP服务,一个MMS服务,然后Silverlight用两种方式来播放这部电影。测试结果非常的明显:

对于使用HTTP协议的视频,内存可以迅速涨到200多兆,然后内存的增长速度几乎就是下载速度,每秒十几兆的增加,缓存增长速度相对内存增长速度则显得非常之慢。

对于使用MMS协议的视频,内存在一直维持在37兆,偶有跳动,但一直在37兆左右跳动,半个多小时都不曾增加内存使用,而且CPU使用率明显低于使用HTTP方式请求视频。

不知道Silverlight是不是把基于HTTP请求的视频直接下载在内存中,然后把播放过的写入虚拟内存?…

Path的Stroke和Fill属性不能指向同一个SolidColorBrush对象?

今天碰到这个BT的问题,对于两个Path对象,像下面这样写的时候,第二行居然无效!

SolidColorBrush scb = new SolidColorBrush(CommonApp.Instance.PathColor);
pathA.Stroke = scb;
pathB.Stroke = scb; //此句居然没有任何作用……

同样,Path的Fill属性存在同样的问题。而对于Rectangle等对象这样写则没有什么问题,真是奇怪…

SolidColorBrush scb = new SolidColorBrush(CommonApp.Instance.RectangleColor);
rectangleA.Fill = scb;
rectangleB.Fill = scb;

这是为什么呢?…

HttpWebRequest头部可用设置以及可读设置

注意:这是在Silverlight 1.1 Alpha中粗略测试的结果,如有错误,欢迎指正!

Alpha还是Alpha,连HttpWebRequest都这么不成熟,最常用的timeout属性居然既不能设置也不能更改,实在是郁闷!花了点时间,把所有的属性的读和写都测试了一遍。

能写的属性如下(其中被注释的表示不能写):

request.Accept = “text/*”;
//request.Address.ToString(); readonly
//request.AllowAutoRedirect = true;
//request.AllowWriteStreamBuffering = true;
//request.AutomaticDecompression
request.Connection = “Close”;
request.ContentLength = 256;
request.ContentType

用XamlReader做一个简单的XAML预览工具

这个工具很很简单了,一个用来输入XAML代码的文本框,一个用来显示XAML执行结果。
从下面这个界面输入XAML代码:

点一下左边的Executed View就可以看到XAML的解析执行结果了:

点这里可以查看演示

在Silverlight上面放一个Textarea(Silverlight木有输入控件,麻烦~),用来输入XAML代码,然后用Silverlight来读取Textarea中的代码,通过XamlReader类来读取这段代码,在通过Silverlight显示出来。前面的实现方法请参考Silverlight与HTML交互的相关文章

XamlReader类的使用方法如下:

//定义一段XAML代码
string xmalstring = “
try
{
//使用XamlReader来读取这段代码
UIElement uie = (UIElement)XamlReader.Load(xamlstring);

让Silverlight项目和Web项目完美融合

Silverlight项目调试有时候会比较麻烦,主要是因为在Silverlight项目里面有一些操作需要和网络交互,典型的操作比如下载图片、视频、XML等。而Silverlight默认打开文件的协议使用的是文件协议,而不是http,因此每次在调试时需要假设一个Web Server,例如在我前面那篇讲在Silverlight中使用中文方法

如果Silverlight项目能够像Web项目一样,F5或者Ctrl+F5一下就可以run了多好。很方便的是在VS 2008中你可以很简单地就能实现了。

1. 创建一个Silverlight项目。在创建项目的同时,VS 2008也同时创建了一个Solution。
2. 在Solution上单击右键,选择 Add -New Web Site。建立一个新的WebSite,这样这个Solution下面就有两个项目了。
3. 在Web项目的根目录上单击右键,选择 Add Silverlight …

用Silverlight(C#)调用JavaScript中的方法

用Silverlight(C#)调用JavaScript中的方法
——Silverlight与JavaScript交互第三篇

第一篇:Silverlight中C#获取与修改HTML DOM元素信息
第二篇:用JavaScript调用Silverlight(C#)中的方法
==================================

前面一篇讲了用JavaScript调用Silverlight(C#)方法的方式,这一篇讲讲怎样用Silverlight来调用JavaScript方法。

[Scriptable]标记真是非常的好,可以允许JavaScript访问Silverlight中的方法,还可以允许Silverlight来调用JavaScript方法。

和JavaScript调用C#方法一样,首先要为Page类注册一个实例名称,如下:

[Scriptable]
public partial class Page

用JavaScript调用Silverlight(C#)中的方法

用JavaScript调用Silverlight(C#)中的方法
——Silverlight与JavaScript交互第二篇

第一篇:Silverlight中C#获取与修改HTML DOM元素信息
第三篇:用Silverlight(C#)调用JavaScript中的方法
======================================

Silverlight是基于浏览器的应用,因此在Silverlight与用户的交互过程中,经常需要涉及Silverlight与JavaScript的交互,用JavaScript调用Silverlight中的方法也就比较正常。在Silverlight中,提供了这样的解决方式:使用[Scriptable]标签则可以允许JavaScript访问该标签下的类、属性和方法。

用调JavaScript用Silverlight(C#)中的方法的实现步骤如下:

在Page类(自动生成的部分)的上面加上[Scriptable]标签,表示允许JavaScript访问这个类。代码如下:…