C#入门经典(第7版):C# 6.0 & Visual Studio 2015(.NET开发经典名著)
上QQ阅读APP看书,第一时间看更新

2.3 桌面应用程序

通常,在演示代码时,将其当作桌面Windows应用程序的一部分来运行,要比通过控制台窗口或命令提示符来运行更便于说明。下面用用户界面构件来组合一个用户界面。

下面的示例介绍建立用户界面的基础知识,说明如何启动和运行桌面应用程序,但并不详细讨论应用程序实际完成的工作。Microsoft推荐使用WPF技术创建桌面应用程序,所以本例中使用了WPF。本书后面会详细研究桌面应用程序,以及WPF到底是什么,它到底可以做些什么。

试一试:创建一个简单的Windows应用程序:WpfApplication1\MainWindow.xaml和WpfApplication1\MainWindow.xaml.cs

(1)在与之前相同的位置(C:\BegVCSharp\Chapter02)创建一个类型为WPF Application的新项目,其默认名称是WpfApplication1。如果第一个项目仍处于打开状态,就应选择Create New Solution选项来启动一个新解决方案,这些设置如图2-10所示。

图2-10

(2)单击OK按钮,创建项目后,应该会看到一个新的分成两个窗格的选项卡。上面的窗格显示了一个空窗口,称为MainWindow,下面的窗格显示了一些文本。这些文本实际上就是用来生成窗口的代码,在修改UI时,会看到这些文本也发生了变化。

(3)单击屏幕左上方的Toolbox选项卡,然后双击Common WPF Controls区域中的Button,在窗口中添加一个按钮。

(4)双击刚才添加到窗口中的按钮。

(5)现在应显示MainWindow.xaml.cs中的C#代码。执行如下修改(为简短起见,这里只显示了文件中的部分代码):

              private void Button_Click(object sender, Routed EventArgs e)
              {
                  MessageBox.Show("The first desktop app in the book! ");
              }

(6)运行应用程序。

(7)单击显示出来的按钮,打开一个消息对话框,如图2-11所示。

图2-11

(8)单击OK。像每个标准桌面应用程序那样,单击右上角的X图标,退出应用程序。

示例说明

IDE又一次自动完成了许多工作,使我们不费吹灰之力就能完成一个实用的桌面应用程序的创建。刚才创建的应用程序与其他窗口的行为方式相同 —— 可以移动、重新设置其大小、最小化等。我们不必编写任何代码来实现这种功能。我们添加的按钮也是这样。双击按钮,IDE就知道我们想添加一些代码,当运行应用程序时,用户单击该按钮,就执行我们已经编写好的代码。只要提供了这段代码,就可以得到按钮单击的所有功能。

当然,桌面应用程序不仅限于带有按钮的普通窗口。如果看看从中选择Button选项的工具箱,就会看到一整套用户界面构件(称为控件),其中一些用户可能很熟悉。本书在其他地方将使用其中的大多数用户界面构件,它们使用起来都非常简单,可以节省许多时间和精力。

应用程序的代码在MainWindow.xaml.cs中,看起来并不比上一节提供的代码复杂多少,Solution Explorer窗口中其他文件的代码也不太复杂。MainWindow.xaml中的代码(可在添加按钮的拆分窗格视图中看到)看上去也很简单。

这是一段XAML代码。XAML是在WPF应用程序中定义用户界面的语言。

下面仔细分析一下在窗口中添加的按钮。在MainWindow.xaml的顶部窗格中,单击按钮一次选中它。此时屏幕右下角的Properties窗口显示了按钮控件的属性(控件也有属性,就像上一个示例中的文件一样)。确保应用程序当前没有运行,然后向下滚动到Content属性,该属性现在被设为Button。将它设为Click Me,如图2-12所示。

图2-12

设计器中按钮上的文本以及XAML代码也会反映这种变化,如图2-13所示。

图2-13

这个按钮具有许多属性,从按钮颜色和大小的简单格式,到某些模糊设置(如数据绑定设置,它可以建立与数据的联系),应有尽有。如上例所述,改变属性通常会直接改变代码,这也不例外,从XAML代码的改变中可以看到这一点。但如果切换回MainWindow.xaml.cs的代码视图,是看不到代码发生变化的。这是因为WPF应用程序能够保持应用程序的设计(如按钮上的文本)与功能(如单击按钮后发生的操作)的分离。

注意:也可以使用Windows Forms来创建桌面应用程序。但WPF是一种更新的技术,能够以更灵活、更强大的方式创建桌面应用程序,而且其目的就是取代Windows Forms,所以本书中不讨论Windows Forms。