一个为WPF编写的Windows桌面应用程序通常是从创建Application对象和Window对象开始的。下面是一个简单的WPF程序:
1SayHello.cs
2
3
4//-----------------------------------------
5// SayHello.cs (c) 2006 by Charles Petzold
6//-----------------------------------------
7using System;
8using System.Windows;
9
10namespace Petzold.SayHello
11{
12 class SayHello
13 {
14 [STAThread]
15 public static void Main()
16 {
17 Window win = new Window();
18 win.Title = \"Say Hello\";
19 win.Show();
20
21 Application app = new Application();
22 app.Run();
23 }
24 }
25}
26
27
28
你可能非常熟悉System命名空间(如果不是,你应该看一下我的在线书 .NET Book Zero),程序SayHello还包含了一个对 System.Windows 的引用,这个命名空间包含了所有的WPF的基础的东东,包括类、结构、接口、代理和枚举,也包括了程序中用到的 Application 和 Window。其他的WPF命名空间都是以 System.Windows 为前缀的,像 System.Windows.Controls,System.Windows.Input 和 System.Windows.Media。有一个例外是System.Windows.Forms,这个命名空间是主Windows窗体的命名空间。所有的以System.Windows.Forms开始的命名空间都是Windows窗体命名空间,除了Windows.Windows.Forms.Integration,这个命名空间包括了可以帮助你将Windows窗体和WPF代码集成起来的类。
这本书中的所有代码都有一个一致的命名方案。每一个程序都和一个Microsoft Visual Studio工程相关联。工程里的所有代码都被一个命名空间的定义所附。(原文比较罗嗦,就不继续翻译这一段了)
在任何一个WPF程序中,属性[STAThread]必须放在Main函数或者C#编译器将要编译的前面。这个属性指示了程序初始化时的线程模型为一个单线程的套间,这是与COM交互时必须的。“单线程套间”是一个旧的COM时期早于.NET的编程用语。但是还是要这样做。
在SayHello程序中,Main函数开始时定义了一个Window类的对象,这个类可以用来创建一个标准的应用程序窗口。属性Title指示了将要出现在窗口标题栏出现的文字,Show方法则是在屏幕上显示这个窗口。
最后一个重要的步骤是在一个新建的Application对象中调用Run方法。在Windows编程方法中,这个方法创建了消息循环,这允许应用程序可以接收用户从键盘和鼠标的输入。如果程序是运行在一个Table PC中,应用程序也从触摸屏中接收输入。 [Page]
你可能会用Visual Studio 2005创建、编译和运行为WPF编写的程序。如果是,那么你可以按照如下的步骤创建SayHello程序。
1.在文件菜单中选择新建工程。
2.在新建工程对话框中,选择Visual C#,WPF和空工程。为工程设置一个目录并且起名叫做SayHello,不要选择创建工程目录。点击确定按钮。
3.在右边(或者其他地方)的解决方案资源管理器中,在引用项中加入PresentationCore、PresentationFramework、System和W