从头到尾的看完了这本书,学习到很多,由于接触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看下:
这里面包含了WPF编程的所需要的所有命名空间。(没有晕? 我已经晕了…)
好了,CTRL+F5就执行吧。会弹出一个窗口,窗口的标题为:Say Hello。
本书源代码都可以通过以下链接得到:http://www.microsoft.com/mspress/companion/0-7356-1957-3