Google Books真是好东西

一直没有用过Google Books,趁休息到处上网乱逛,看到Google的更多菜单里有一个Books,于是过去试了试,正好要找一些WPF的书看看,于是把“WPF”三个字敲进去,回车,结果真是很令我吃惊:居然有这么多书!

另外,这些书你可以添加到你的收藏里面,然后在线阅读,很不错,嗯!

在阅读的时候,你可以在书里面进行搜索,输入关键字就可以了,这样就不用把眼睛瞪得老大然后在目录里面找了,哈哈……

PS:貌似默认是中文版的,老是出问题,建议使用英文版的Google,访问google.cn,然后点首页下面的那个“Google.com in English”就可以了^_^…

C#:在正则表达式替换时进行处理

有些时候我偶们希望在正则表达式的替换中对替换的字符换进行简单的处理,比如把所有的A依次替换为B1、B2、B3……这就需在替换时对字符串进行处理,其实这个很简单,用C#中的MatchEvaluator委托就可以了。简单的示例如下:

private static int i = 0;

public static string ParseToHTML(string ubbString)
{
Regex rgx;
string htmlString = "";

MatchEvaluator me = new MatchEvaluator(AddOne);
rgx = new Regex(@"\[code\](.*?)\[\/code\]");
htmlString = rgx.Replace(htmlString, me);

return htmlString;
}

public static string AddOne(Match m)
{
string code = m.Value.Substring(6,

Silverlight 1.0 Released

Silverlight 1.0正式版发布,安装包大小1.37M,仍然比1.1 Alpha小很多。目前只发布了Windows平台和Mac平台的正式版。

下载地址:
http://www.microsoft.com/silverlight/downloads.aspx

SDK下载地址:
http://msdn.microsoft.com/vstudio/eula.aspx?id=a40f3ffc-2657-02ec-7d67-7a79b4eac832

看了一下SDK中的更新说明,和1.1 Alpha版的SDK更新说明做了一下对比,两者的Enhancements是一致的,而1.0正式版的Breaking Changes则比1.1 Alpha多出这样三条:

OnLoad, OnError, OnResize, OnFullScreenChange are now Function Pointer Based Rather than String

Youtube Desktop视频观看新体验

今天一大早过来就收到了YoutubeDesktop的邀请,赶紧过去登陆了,体验一下Youtube Desktop Beta版到底能带来哪些不一样的东西。登陆以后,点击一个视频即可开始播放,其基本界面如下:

在这个页面中,视频缩略图的数量和排列顺序则会根据当前浏览器窗口的大小自动排列变化,浏览器是不会出现滚动条的,浏览器窗口越大,每页显示数量越大,当浏览器窗口变小,视频数量也会减少,其排列方式也会自动变化。登陆进去可以看到前一百条视频,而通过顶部的搜索则可以显示全部搜索结果,从几条至几十万条或者更多。中间的播放器界面如下:

可以看到,其界面和播放功能设计几近于一个桌面播放器,并支持把视频从页面中拖拽到播放器列表中,这也应该是为什么叫Youtube Desktop的原因了。在这个播放器中,你同样可以保存播放列表(需要登陆,或许这个播放列表也应该是可以共享的)。在播放控制栏下面一行,则是收藏和分享的一些按钮。…

返回指定Canvas中的所有TextBlock

还是因为要用中文,所以需要遍历所有的TextBlock,一一设置字体……还好,不算复杂,先找根Canvas中的节点,如果是TextBlock就加入到List中,如果是Canvas的话就递归一次,然后把返回结果也加入到List中,最终返回一个TextBlock数组。

TextBlock[] FindAllTextBlock(Canvas container)
{
List tbl = new List();

for (int i = 0; i < container.Children.Count; i++)
{
//如果是TextBlock,就加入到List中
if (container.Children[i].GetType() == typeof(TextBlock))
tbl.Add(container.Children[i] as TextBlock);
//如果是Canvas,就继续递归查找
else if (container.Children[i].GetType() == typeof(Canvas))

Silerlight也可以不放在页面的顶层

很多插件都是位于页面的顶层的,在页面上无论如何也覆盖不了,默认的Silverlight设置也是这样的,但是加一个参数就可以把Silverlight从顶层拿下来了,然后你就可以在上面放上你要的文字,文本框,甚至透明的flash。这个参数就是isWindowless,依然是修改createSilverlight方法,在properties代码块中加上如下一行:

isWindowless: “true”,

这样就把Silverlight从顶层拿下来了。剩下的你就可以发挥啦,用CSS把flash、文本框、按钮放上去吧!…