一个WPF版的类Vista的地址栏控件Breadcrumb Bar
摘要: 在Vista和Windows7中,采用了新型的树型控件Breadcrumb Bar,这个空间可以起到快速导航的作用(但貌似许多XP粉们不习惯它),许多控件公司也提供了这样的实现,但由于一来是收费的,二来和许多其它控件捆绑在了一起,显得过重了。今天我在CodeProject上发现了一个WPF版的BreadcrumbBar,效果也非常好,有需要的朋友可以参考一下。
阅读全文
posted @
2009-11-25 20:05 天方 阅读(312) |
评论 (0) 编辑
WPF下的语法高亮控件——AvalonEdit
摘要: 早就听闻SharpDevelop 会采用WPF作为界面,今天在网上闲逛的时候发现了其语法编辑器——AvalonEdit已经发布了,在CodeProject上也可以看到其代码了。 界面效果如下: 下载了其Demo简单的试用了一下:支持语法高亮、智能提示、代码折叠、撤销&重做,另外,还支持不少快捷键;可以说是该有的功能基本上都有了。 性能上也十分令人满意:我把网易的首页的Html的源...
阅读全文
posted @
2009-11-22 23:14 天方 阅读(748) |
评论 (1) 编辑
Office 2010简体中文测试版已经可以下载了
摘要: Office 2010简体中文测试版已经可以下载了,建议直接从微软的官方网站http://www.microsoft.com/office/2010/zh/default.aspx下载——因为从官方网站下载的时候可以顺便申请到激活所需要的key。另外,官方的下载速度还是很有保证的。 此次我安装了Office和Visio,汉化程度还是相当高的,除了Excel以外,目前还没有在...
阅读全文
posted @
2009-11-22 03:42 天方 阅读(1547) |
评论 (0) 编辑
.Net4.0并行库介绍——线程专有存储
摘要: 在.Net 4.0的Thread里,新增了线程局部变量(ThreadLocal)类,可以很方便的实现线程专有存储。 应用场景 线程专有存储应被用于这样的多线程应用:它们经常访问那些逻辑上是全局的、而物理上是专有于每个线程的对象。首先我们看如下这样一个例子 string errorMessage; void Process() { bool ret = Run()...
阅读全文
posted @
2009-11-15 21:03 天方 阅读(195) |
评论 (0) 编辑
C# 4.0新特性——Optional Parameters
摘要: Optional Parameters虽然不是新的概念,在C++和Basic等语言中是一个老特性了,在C# 4.0中终于将其也加入了进来,通过Optional Parameters,可以减少重载函数的数量,加快开发效率。使用方式:使用上就跟C++一样,只需用等号为函数的参数加上默认值即可,例如,对于如下函数:public void M(int x, int y = 5, int z = 7);我们...
阅读全文
posted @
2009-11-09 00:32 天方 阅读(170) |
评论 (0) 编辑
.Net4.0并行库介绍——System.Collections.Concurrent
摘要: 在.net 4.0中新增了一个名字空间——System.Collections.Concurrent。它提供了一系列线程安全的常用容器,如下是一个根据System.Collections.Concurrent.BlockingCollection<>实现一个生产者/消费者的例子: static void Main(string[] args){BlockingC...
阅读全文
posted @
2009-11-08 23:26 天方 阅读(346) |
评论 (0) 编辑
解决WPF中TextBox文件拖放问题
摘要: 在WPF中,当我们尝试向TextBox中拖放文件,从而获取其路径时,往往无法成功(拖放文字可以成功)。造成这种原因关键是WPF的TextBox对拖放事件处理机制的不同,具体可参考这篇文章Textbox Drag/Drop in WPF,本文只是介绍如何解决这一问题。解放方法如下: 使用PreviewDragOver和PreviewDrop事件代替DragOver和Drop事件。<Tex...
阅读全文
posted @
2009-11-07 20:37 天方 阅读(432) |
评论 (1) 编辑
.Net4.0并行库介绍——通过TaskFactory.FromAsync简化APM
摘要: 异步执行 I/O 密集型操作是生产高响应和可伸缩应用程序及组件的关键。可让您使用极少量的线程来执行大量的工作,而无需阻止任何线程。然而异步编程却有些麻烦,许多程序员不愿意去做它。网上有不少通过lambda 表达式和AsyncEnumerator 等来实现简化异步编程的方法,这些方法也确实行之有效,但在.net 4.0中,我们又多了一种选择——通过TaskFactory.FromAsync简化APM...
阅读全文
posted @
2009-11-07 14:27 天方 阅读(438) |
评论 (0) 编辑
.Net4.0并行库介绍——Cancellation Framework
摘要: 在.net 4.0中,引入了一个新的类CancellationToken,这个类基本上集成了我们各种常用的取消方式,在并发任务中非常有用。同步模式下的取消:一种比较常见的需要支持取消功能的的是一些比较耗时的分段操作:如视频转换,网络下载等,这种方式下的取消机制如下:建立一个标记位,表示该操作是否已经取消UI线程在获取到取消事件后,置标记位为true耗时的操作线程里,没进行一小段操作之后查询该标记位...
阅读全文
posted @
2009-11-04 20:43 天方 阅读(274) |
评论 (0) 编辑
.Net4.0并行库介绍——Task
摘要: Task和ThreadPool的功能类似,可以用来创建一些轻量级的并行任务。对于将一个任务放进线程池ThreadPool.QueueUserWorkItem(A); 这段代码用Task来实现的话,方式如下:Task.Factory.StartNew(A); 这两端代码的使用和实现的功能都十分相似。但和TheadPool相比,Task有着更多的功能,更加方便我们使用。 假如我们要创建三个任务,并等待...
阅读全文
posted @
2009-11-02 20:45 天方 阅读(422) |
评论 (0) 编辑
解决Ie8中使用Ie7pro时鼠标手势的一个bug
摘要: Ie7pro无疑是最为强大好用的Ie插件,通过它的增强后的Ie在易用性方面不在Maxton等第三方浏览器之下了。但它在Ie8中兼容性却一直不大好,不过随着Ie8的逐渐普及,Ie7Pro也逐渐开始加强了对Ie8的支持,现在已经支持的相当不错了,然而鼠标手势的一个bug却一直没有解决。 这个bug现象是:当开启多个tab页面时,通过鼠标手势关闭当前tab页面只是将该页面置为空白页,并没有关闭该tab页...
阅读全文
posted @
2009-11-01 23:10 天方 阅读(689) |
评论 (0) 编辑