随笔 - 136
文章 - 0
评论 - 36
阅读 -
17万
11 2011 档案
WPF:构建应用程序
摘要:WPF相关的项目内容包含在App.Xaml和Window1.xaml中,这些文件中包含了相当重要的Application对象和Window对象。Window类 Window是传统应用程序的主要元素,用来包含应用程序的内容。WPF Window其实只是一个包装过的Win32窗口。操作系统无法区分具有WPF内容的窗口和具有Win32内容的窗口间的差别,它会以相同的方式在非客户端区域进行渲染。 Window提供了一种对Win32窗口的直接抽象,其中提供了许多简单的方法和属性。在完成Window初始化后,可以调用Show来显示它,调用Hide让它隐藏,调用Close来完全的关闭它。 Wind...
阅读全文
WPF控件
摘要:标准WPF控件在不同的Windows支持的主题下有不同的外观。如果WPF遇到了一些求知的新主题,WPF会自动把它当作Classic主题来对待。内容控件 内容控件是只允许包含单一项的简单控件。内容控件都继承自System.Windows.Controls.ContentControl,它们拥有只含一项的Object类型的Content属性。 因为内容控件的单一项可能是任意对象,所以它可能包含一个很大的对象树。它只能有一个直接子节点。除了Content以外,ContentControl类另外一个有趣成员是HasContent布尔型属性。如果Content为空(Content == null...
阅读全文
WPF的重要新概念
摘要:逻辑树与可视树 XAML天生就是用来呈现用户界面的,这是由于它具有层次化的特性。在WPF中,用户界面由一个对象树构建而成,这棵树叫作逻辑树。 WPF用户界面的逻辑树也并不一定用XAML创建,它完全可能用过程式代码来实现。 逻辑树的概念很直观,但为什么要关注它呢?因为几乎WPF的每一方面(属性、资源、事件等)都有与逻辑树相关联的行为。如,属性值有时会沿着树自动传递给子元素,而触发的事件可以自底向上或自顶向下遍历树。 与逻辑树类似的一个概念是可视树。可视树基本上是逻辑树的扩展,在可视树中,节点都被打散,分放到核心可视组件中。可视树提供了一些详细的可视化实现,而不是把每个元素当作一个“黑盒”...
阅读全文
XAML
摘要:XAML定义 XAML是一种相对简单、通用的声明式编程语言,它适合于构建和初始化.NET对象。 XAML仅仅是一种使用.NET API的方式,把它与HTML、可伸缩向量图形(SVG)或其他特定领域的格式或语言作比较是完全错误的。XAML由一些规则(告诉解析器和编译器如何处理XML)和一些关键字组成,但它自己没有任何有意义的元素。因此,如果在没有WPF这样的框架的基础上讨论XAML,就如同在没有.NET Framework的基础上讨论C#一样。 XAML在WPF中扮演的角色通常是令人困惑的,因此第一件要搞清楚的事情是WPF和XAML可以独立使用,它们并不是互相依赖的。虽然XAML最初是为W...
阅读全文
异步编程模型APM(2)
摘要:使用APM执行受计算限制的异步操作 我们可以通过APM来调用任何方法,但首先,我们需要定义一个与我们希望调用的方法拥有相同签名的方法。以计算1至n间总和的方法为例(这是一个计算密集的任务,它不执行任何I/O操作)。private static UInt64 Sum(UInt64 n){ UInt64 sum = 0; for(UInt64 i = 1; i <= n; i++) { checked { //在此使用了checked代码,以便于当结果sum与类型UInt64不符时抛出一个异常 sum +...
阅读全文
异步编程模型APM(1)
摘要:简介 执行异步操作是构建高性能、可扩展应用程序的关键,它允许我们能够用非常少的线各执行许多操作。MS CLR团队设计了一种模式,可以让开发人员方便地利用这种能力,这种模式称为异步编程模式(APM)。 在FCL中许多类型都支持APM,如下面一些具体例子:所有派生自System.IO.Stream并与硬件设计通信的类都提供了BeginRead和BeginWrite方法。System.Net.Dns类提供了BeginGetHostAddresses、BeginGetHostByName、BeginGetHostEntry和BeginResolve方法。所有派生自System.Net.WebReq..
阅读全文