上一页 1 2 3 4 5 6 7 ··· 10 下一页
摘要: 这是Office2010中的文件菜单点开后的效果。本文我将以强大的WPF来实现类似的效果。希望你能有所收获。而不是只拷贝/粘贴代码而已。开始之前。先把TabControl找个地方放着。<Window x:Class="TestClient.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="Ma 阅读全文
posted @ 2012-10-17 10:01 lazycoding 阅读(3315) 评论(6) 推荐(2) 编辑
摘要: 有时候对于对象来说。在一个软件中,不直接通过互相引用而做到共享信息是非常有用的。比如像带有插件的软件。可以互相进行通信。假设我们有了很多对象。其中一些包含一些数据。而另一些对象需要消费这些数据 不同的子集,我们不通过对数据生产者和消费者的直接引用来实现,而是通过更低耦合的方式。叫做创建一个“BlackBoard”(黑板)对象。该对象允许其他对象自由对其进行读取/写入数据。这种解耦方式使得消费者不知道也不必知道数据来自哪里。如果想要了解更多关于黑板模式的信息。我们常说的。Google是你最好的朋友。 一个最简单的黑板对象应该是 Dictionary一些简单的命名值的字典。所有的对象共享同一个字. 阅读全文
posted @ 2012-10-16 12:12 lazycoding 阅读(1886) 评论(0) 推荐(1) 编辑
摘要: 简单科普文,作者给的Demo我合并了下。VS2010直接打开解决方案。二者都有。介绍本文展示在WPF中如何创建用户控件并且如果在WPF项目中使用。我将使用VS2008和C#来展示如何创建一个自定义的ToolTip背景这篇由Sacha Barber.写的和我的有点像。使用代码开始。首先,我们创建一个用户控件。因此,我们选择新建WPF用户控件类库(WPF User Control Library)。现在。我们可以创建或者编辑XAML代码来创建自定义的用户控件了。我使用XAML来创建自定义的ToolTip。你想做什么随你。<UserControl Name="UserControlT 阅读全文
posted @ 2012-10-15 08:37 lazycoding 阅读(8213) 评论(1) 推荐(5) 编辑
摘要: 介绍最近,我发现我需要个圆角多边形。而且是需要在运行时从用户界面来绘制。WPF有多边形。但是不支持圆角。我搜索了一下。也没找到可行的现成例子。于是就自己做吧。本文描述了圆角多边形的实现,也包括如何用在你的项目里。在Demo里面的RoundedCornersPolygon 类是完整的实现。下载的Demo包括两部分1. 通过XAML绘制圆角多边形2. 运行时创建圆角多边形背景多边形可以被认为是沿着一个给定半径的圆的边缘和一些指定点/边。所构成的点的集合。在WPF中。你可以给Polygon对象的Points属性添加一系列的点来制作多边形。XAML方式<Canvas> <Polygo 阅读全文
posted @ 2012-10-13 09:49 lazycoding 阅读(13246) 评论(1) 推荐(6) 编辑
摘要: 图11.介绍从我开始使用vista的时候,我就非常喜欢它的圆形玻璃按钮。WPF最好的一个方面就是允许自定义任何控件的样式。用了一段时间的Microsoft Expression Blend后。我做出了这个样式。我觉得做的还行。因为。我决定分享。如我所说。我使用Microsoft Expression Blend来做。但是。我也是用XAML编辑器--Kaxaml。2.概述玻璃按钮样式包含了三层。组织了玻璃效果(Glass Effect)和一个ContentPresenter 来存储按钮的内容。所有的这些层都在一个最外层的Grid里。当鼠标放到按钮上,按下去的时候也定义了一些触发器(Trigger 阅读全文
posted @ 2012-10-12 09:33 lazycoding 阅读(9841) 评论(2) 推荐(3) 编辑
摘要: WPF里是没有LinkLabel控件的。因此我自己写一个。首先。我们看一下WPF中什么类似的组件可以实现这个链接功能如果你想要模拟一个LinkLabel控件。你可以在TextBlock里使用内联的Hyperlink。像下面这样<TextBlock> <Hyperlink> <Run Text="Test link"/> </Hyperlink></TextBlock>你可以使用Label控件。加一个内联的HyperLink,但是我认为TextBlock更好。因为你可以在Expression Blend中通过Inli 阅读全文
posted @ 2012-10-11 13:28 lazycoding 阅读(3681) 评论(2) 推荐(1) 编辑
摘要: 介绍这是我在CodeProject上的第一篇文章。我希望对你有用当我开发软件的时候。我通常因为一个很耗时是任务需要完成。而请求让用户等待,并且通过也允许用户取消。不论我做何种操作(比如下载文件。保存大文件等等)。我都需要做下面几件事:通过一个模态对话框来让用户等待操作完成能让用户看到进度。能让用户随时取消。我搜了好久也没找到拿来就能用的窗体控件,也许是我没找到。于是我自己写。。图1背景BackgroundWorker 类包含了我需要完成任务的所有东西。我只需要给他提供一个对话框。使用代码ProgressForm 包含了一个BackgroundWorker ,你要做的仅仅就是提供了一个完成工作的 阅读全文
posted @ 2012-10-10 09:08 lazycoding 阅读(5827) 评论(15) 推荐(4) 编辑
摘要: 1 介绍我知道。网上有很多现成的FTP软件。但是。我们也想要了解FTP的一些底层机构,因此。 这个开源的项目在你学习FTP知识的时候也许对你有些帮组。程序的界面看起来像FileZilla,FileZilla虽然流行但是有些bug,当我打开我博客的时候总是有问题。我需要通过FTP连接我的服务器。发送文件,下载文件等等。因为。我决定写我自己的软件来处理所有的情况。FileZilla足够好。但它不是我的。2 背景看看我们已经知道的。我们知道FTP是一个标准的基于TCP网络协议。用于从一个主机向另一个主机传输文件。它是一个C/S架构。图2FTP程序曾经是基于命令行的。我们仍沿可以通过cmd.exe连接 阅读全文
posted @ 2012-10-09 09:05 lazycoding 阅读(15343) 评论(14) 推荐(7) 编辑
摘要: 介绍本文讨论生成器设计模式,讨论该模式什么情况下使用,怎么实现。并且。最后会有一个简单的生成器模式的实现。背景当我们的程序需要创建一个对象。而这个对象必须由很多不同的对象来构造的时候。为了构造最后的对象。我们不得不组合那些部分对象。最后我们会发现我们的代码被各种各样的部分对象的细节所弄的难以理解为了说明上面的情况。我们做一个手机生产制造系统的例子。假定我们我们有一个已经安装在手机供应商那块的一个系统。现在供应商系那个要根据一些参数来创造一个新手机。比如触屏,操作系统,电池等。如果我们已经有了这些部分的对象,那么上述部分的任意组合将会导致客户端代码复杂难以管理。比如决定生产哪种手机的模块。生成器 阅读全文
posted @ 2012-10-08 13:18 lazycoding 阅读(1542) 评论(1) 推荐(1) 编辑
摘要: 背景对于指定的任务有不同的方案可供选择,通常是很好的。因为可能某一种方案会更加适合该任务,但是有时候做决定会很难。因为这些不同的方案有其各自的优缺点。我经常会停下来好好想想,是不是接口比委托更适合或者是更不适合某个任务。有时候我甚至会回去看我写的代码,这些代码刚开始使用委托来实现,我后来用接口替换掉。因此,是时候写篇文章来阐述一下这两种技术的优缺点了。性能我经常看到有人问接口是不是比委托更快啊。或者是不是相反。通常。别人给的答案会是: 接口更快。委托相当慢 委托更快,因为他们是指向方法的指针,接口则需要一个v-table(虚函数解析表),然后找到委托他们一样快,但委托更容易使用好吧。那些都是错 阅读全文
posted @ 2012-10-07 08:30 lazycoding 阅读(3262) 评论(21) 推荐(5) 编辑
上一页 1 2 3 4 5 6 7 ··· 10 下一页