上周尝试了一下发布不久的Silverlight 2 beta2,设计了这么一个简单的播放器widget。它支持循环播放,支持自动播放,支持封面图片,支持暂停(鼠标移动到封面上就会淡入按钮)。
}GéQaOï3(www.netcsharp.cnÀÀ¬$ ¨µ4p本来是想设计的稍微酷一点的,发现
Silverlight2的矩阵变形能力还是相当弱的,其实现的功能也就是平移、平行四边形化和旋转,如果再支持梯形化就好了。
}GéQaOï3(www.netcsharp.cnÀÀ¬$ ¨µ4p
}GéQaOï3(www.netcsharp.cnÀÀ¬$ ¨µ4p}GéQaOï3(www.netcsharp.cnÀÀ¬$ ¨µ4p发现Silverlight 2 beta2相对beta1的一些小变化:
}GéQaOï3(www.netcsharp.cnÀÀ¬$ ¨µ4p}GéQaOï3(www.netcsharp.cnÀÀ¬$ ¨µ4p1.字体优化,beta1总算支持了中文显示,但却显示的非常别扭。
}GéQaOï3(www.netcsharp.cnÀÀ¬$ ¨µ4p一句话会出现两种字体,貌似规律是这样的,如果某个汉字的繁简体一样的话,那么这个汉字在Silverlight中显示为黑体,否则为宋体。
}GéQaOï3(www.netcsharp.cnÀÀ¬$ ¨µ4p其实微软的网站上早就有这样的先例,譬如下图:
}GéQaOï3(www.netcsharp.cnÀÀ¬$ ¨µ4p
}GéQaOï3(www.netcsharp.cnÀÀ¬$ ¨µ4p}GéQaOï3(www.netcsharp.cnÀÀ¬$ ¨µ4p2.Image不再像之前那样使用依赖属性赋一个Uri就可以了,而是变成了下面的样子:
}GéQaOï3(www.netcsharp.cnÀÀ¬$ ¨µ4pBitmapImage bmp =}GéQaOï3(www.netcsharp.cnÀÀ¬$ ¨µ4pnew BitmapImage(); }GéQaOï3(www.netcsharp.cnÀÀ¬$ ¨µ4p
bmp.UriSource =}GéQaOï3(www.netcsharp.cnÀÀ¬$ ¨µ4pnew Uri(cover); }GéQaOï3(www.netcsharp.cnÀÀ¬$ ¨µ4p
this.img_Cover.Source = bmp;}GéQaOï3(www.netcsharp.cnÀÀ¬$ ¨µ4p}GéQaOï3(www.netcsharp.cnÀÀ¬$ ¨µ4p3.另外,之前
基于beta1制作的饭否widget无法编译通过了,在异步调用的方法中,似乎无法直接操作控件的属性了,不知何解。
}GéQaOï3(www.netcsharp.cnÀÀ¬$ ¨µ4p}GéQaOï3(www.netcsharp.cnÀÀ¬$ ¨µ4pOK。如果你也想在blog上添加这个widget,那么编辑主题,在相应的位置加入以下代码:
<object data="data:application/x-silverlight," type="application/x-silverlight-2-b2" width="140" height="160">}GéQaOï3(www.netcsharp.cnÀÀ¬$ ¨µ4p
<param name="source" value="http://blog.windstyle.cn/wp-content/uploads/2008/06/windstyleplayer.xap"/>}GéQaOï3(www.netcsharp.cnÀÀ¬$ ¨µ4p
<param name="onerror" value="onSilverlightError"/>}GéQaOï3(www.netcsharp.cnÀÀ¬$ ¨µ4p
<param name="InitParams" value="music=http://lqyy.cnlu.net/UploadFile/2008-4/200841718293180.mp3,cover=http://img.verycd.com/post_thumbs/0804/post-511307-1208867652_thumb.jpg,title=鸿雁 - 额尔古纳乐队,auto=true,loop=true"/>}GéQaOï3(www.netcsharp.cnÀÀ¬$ ¨µ4p
<param name="background" value="#09182A"/>}GéQaOï3(www.netcsharp.cnÀÀ¬$ ¨µ4p
<a href="http://go.microsoft.com/fwlink/?LinkID=115261" style="text-decoration: none;">}GéQaOï3(www.netcsharp.cnÀÀ¬$ ¨µ4p
<img src="http://go.microsoft.com/fwlink/?LinkId=108181" alt="Get Microsoft Silverlight" style="border-style: none"/>}GéQaOï3(www.netcsharp.cnÀÀ¬$ ¨µ4p
</a>}GéQaOï3(www.netcsharp.cnÀÀ¬$ ¨µ4p
</object>}GéQaOï3(www.netcsharp.cnÀÀ¬$ ¨µ4p}GéQaOï3(www.netcsharp.cnÀÀ¬$ ¨µ4p稍微介绍一下InitParams的配置就可以了,它包含了音乐url(music)、封面url(cover)、标题(title)、自动播放(auto)和循环(loop),各个参数之间用半角逗号分割即可。
}GéQaOï3(www.netcsharp.cnÀÀ¬$ ¨µ4p附件:
windstyleplayer.rar