WPF 读书笔记之一 开篇 (Applications=Code+Markup)

从头到尾的看完了这本书,学习到很多,由于接触WPF 的时间有点晚,其实早就已经接触了只是没有系统的学习和了解。工作之余学习Petzold的这本书《Applications=Code+Markup》. 对于WPF的了解和提供非常有帮助。

书中有很多例子,都一一的动手做了,有些地方非常的巧妙,作为学习者,非常有必要记录下学习的过程以及在学习中吸取到的知识,也希望在这里和大家一起交流,更希望学习到更多,因为书本知识毕竟有限。

其他话也就不多说了,重头将书来一次,和大家一起进步和提高。突然想起了一个电影里面的台词:

A:您好,先生,我看你的书看了两遍..

B:难道第一次没有看懂?

应该是这样的,我虽然将书本的31章过了一次,基本的概念也理论都了解,实践也很多,但是WPF的强大不能不让人折服,不懂,确实不懂,知识的浩瀚真是可怕啊。

 

既然我们要选择WPF,必须了解它的特性,那么它的优点是什么呢?我查找了下资料,转载了以下内容(因为总结的4点已经足够):

[转自:http://blog.csdn.net/xiaomin98/archive/2008/02/22/2113785.aspx]

1.它是所有用户体验的类的集合。使用统一的XAML,标签语言进行编程。

     以往的用户体验分别由以下不同部分组成。

    1.用户可视控件。

    2.图形。GDI+

    3.高级多媒体性能。DirectX

     以上三种编程模型各有区别。要掌握起来都不容易。比如DirectX或者自定义外观控件。

     WPF对以上部分设计的DLL再次封装。把表现层抽象出来成为一个整体概念。并且使用声明式语言XAML进行编程。(其实编译后还是变成面向对象的语言VB.NET,c#,或者直接IL语言)。它简化了UI的编程,对于开发人员来说,可以更加专注于程序的实现,而不需要为了界面而花费太多时间,因为那实在应该属于界面设计人员的工作。

2.XAML标签语言自由组合,使得所有控件可以任意嵌套。这项特性对于写自定义外观的控件来说是一个效率的大飞跃。

3.提供了专门的界面开发工具。是界面开发人员和程序开发人员分工更明确。 Expression Studio系列工具

4.整合了web开发和windows开发的模式。web的界面开发使用的是html和asp.net服务器组件的标签式语言,而XAML也是标签语言。

[转自:http://blog.csdn.net/xiaomin98/archive/2008/02/22/2113785.aspx]

 

当然,更重要的一点就是Microsoft对此提供的支持,以及通过学习之后我发现,离开Winform,控件开发居然可以这么容易。

1 . 定制模板样式。 可以给控件自定义模板,并应用样式,就好比HTML+CSS的感觉。

2.  绑定。 WPF的XAML代码能够方便的与后台绑定并交互,这个将在后面的学习过程中提到。

3. 依赖属性(DependencyProperty) . 嗯,个人感觉很好用。 因为它只有依赖属性支持绑定…很重要

其他的以上差不多都提到了,学习的过程中将会一一遇到。

 

学习新的知识免不了开始”Hello World!”, 嗯,这个是为了向大家表明:我,开始学什么什么了。(其实跟我胡汉三又回来了一个味道)。好吧,那就开始”Hello World!”吧。

书从头到尾没有一张图,没有关系,我会加上的. 之所以书名为Code+Markup是因为书的第一部分10多章节全部都是建立Console Application。至于怎么建立控制台应用程序就不需要我多说了吧?(因为作者在写书的时候,VS 2008没有诞生,所以VS没有WPF的空白模板,没有办法,哈哈,但是现在2010我都在用了,所以很方便) 看代码:

using System;
using System.Windows;

namespace Petzold.SayHello
{
    class SayHello
    {
        [STAThread]
        public static void Main()
        {
            Window win = new Window();
            win.Title = "Say Hello";
            win.Show();

            Application app = new Application();
            app.Run();
        }
    }
}

代码很简单,首先来讲解一下。

一个WPF的应用程序必须有并且至多有一个Application实例。但是可以包含很多Window。前面提到这是一个Console Application,如果单纯的控制台应用肯定是会编译失败的,我们需要添加3个引用:

PresentationCore

PresentationFramework

WindowsBase

那么他们包含什么呢? 我们用Object Browser看下:

Untitled

这里面包含了WPF编程的所需要的所有命名空间。(没有晕? 我已经晕了…)

好了,CTRL+F5就执行吧。会弹出一个窗口,窗口的标题为:Say Hello。

 

 

本书源代码都可以通过以下链接得到:http://www.microsoft.com/mspress/companion/0-7356-1957-3

本书的下载地址:http://www.charlespetzold.com/wpf

posted @ 2010-08-03 15:55  Nick Song  阅读(641)  评论(0编辑  收藏  举报