给WPF程序增加玻璃效果
摘要: 在Vista中增加了一种Aero新界面,也就是我们所说的玻璃效果,这种效果比较酷,我也常常喜欢在自己写的小程序中加入这种效果。 实现这种效果并不难,也就是两个API,MSDN的文章将玻璃框扩展到 WPF 应用程序详细介绍了如何实现这种效果。在google上拿"C# DwmExtendFrameIntoClientArea"做关键字,也能搜到一大把。 我一般是用的CodeProject的文...
阅读全文
posted @
2010-02-18 23:50 天方 阅读(1593) |
评论 (8) 编辑
绑定任意格式的XML文档到WPF的TreeView
摘要: 在WPF中,如果我们已经知道某XML的格式,将其数据通过数据绑定在TreeView中呈现出来是非常简单的。通过Xpath和HierarchicalDataTemplate很容易实现。 但是,有时我们还需要将一个未知格式的xml文件绑定到TreeView。其实IE及那些XML工具都有这种功能:任意打开一个xml文件,都能以树型的格式的显示。 这种就是一种通用型的XML格式绑定了,由于XML格式未知,...
阅读全文
posted @
2010-02-18 04:39 天方 阅读(994) |
评论 (0) 编辑
一种简单的实现多线程断点续传的方案
摘要: (PS:前面四段是废话,对技术感兴趣的直接看图片后的部分) 由于VisualStudio 2010 RC版发布了,我自然在第一时间踊跃当起了小白鼠,便用迅雷下了起来。谁知道还没有下一个小时,就被一起租房的哥们抱怨了,说他现在连在网上看小说都不行了,问我还需要下载多久。由于我用的是网通的512K小水管,算了一下,大概要下一整天,便把迅雷给停了(迅雷的那个所谓智能限速完全没有效果)。 然而,看到那...
阅读全文
posted @
2010-02-11 23:13 天方 阅读(381) |
评论 (2) 编辑
在WPF中弹出右键菜单时判断鼠标是否选中该项
摘要: 和上篇在WPF的TreeView中实现右键选定一样,这仍然是一个右键菜单的问题: 这个需求是在一个实现剪贴板的功能的时候遇到的:在弹出右键菜单时,如果菜单弹出位置在ListViewItem中时,我们认为这项已经被选中,可以使用剪贴板功能。 当菜单弹出位置在ListView的空白处时,我们一般认为没有项被选中,此时是不应该使能剪贴板功能的。 但是这个时候,该项仍然是选中的。不能通过Item的Is...
阅读全文
posted @
2010-02-10 16:41 天方 阅读(1290) |
评论 (7) 编辑
在WPF的TreeView中实现右键选定
摘要: 在WPF中,TreeView默认情况是不支持右键选定的,也就是说,当右键点击某节点时,是无法选中该节点的。当我们想在TreeViewItem中实现右键菜单时,往往希望在弹出菜单的同时选中该节点,以使得菜单针对选中的节点生效。 图1:虽然是在GNU节点上弹出的右键菜单,但选中的节点仍然是上次左键单击的DOC节点。 图2:弹出的右键菜单同时选中GNU节点才是我们所需要的效果 实现这个功能并不是很难,我...
阅读全文
posted @
2010-02-10 15:49 天方 阅读(1723) |
评论 (3) 编辑
WPF TreeView tools
摘要: 在WPF的TreeView使用方式和WinForm下有很大不同,那些展开某节点、获取父节点,判断某节点是否被选中等常用的操作在WinForm下都有相关函数,而在WPF中却不能轻易实现。 一种常规的方式是通过MVVM模式来将TreeViewItem节点中的IsSelect,IsExpanded等属性来双向绑定到要显示的节点数据中,然后直接通过节点数据的属性来实现相关操作。 MVVM的设计方式本身是为...
阅读全文
posted @
2010-02-06 21:56 天方 阅读(1464) |
评论 (3) 编辑
.Net 4.0中IO操作的增强
摘要: 在.Net 4.0中增加了一系列较为实用的IO功能,下面让我们来一起看一下吧:1. Stream.CopyToStream.CopyTo在用于较小的Stream之间的拷贝时还是比较方便的,有了它后我就不用为这个简单的功能而再写一个扩展函数了。当然,这个函数不适合于大型的Stream的拷贝(延迟太高),要是微软肯再加上一个带进度的就更好了。O(∩_∩)O~2. File.ReadLines和File...
阅读全文
posted @
2010-02-05 21:30 天方 阅读(275) |
评论 (0) 编辑