《Windows程序设计第六版》译文:第一章--标记语言和代码:第一节 第一个项目(1)

本篇为《Programming Windows, 6th Edition》译文,本人将一些琐碎之事写在译文之前,没看过的还请劳驾看一下写在《Programming Windows,6th Edition》译文之前

 从Brian Kernighan和Dennis Ritchie出版的经典书籍《C语言》开始,用Hello World给初学者作为开始的代码已经变成了一种习惯,让我们给Windows8这个新世界创造一个类似的程序。

         我假设你已经安装了带有开发工具和SDK的Windows8预览版,特别指出,在本书中,我将用Visual Studio指代Microsoft Visual Studio Express 2012 RC for Windows8。

         从Windows 8的开始屏幕启动VS,让我们开始写代码吧。

 

第一个项目

         在VS打开的屏幕中,开始标签应该已经被选中。在左边你将看见一个“建立新项目”的选项。点击它,或者是从文件菜单选择“建立新项目”。

         建立新项目的对话框弹出时,在左边面板中选择Visual C#,然后选择新建Windows 8项目,从中间区域选择空白应用。在对话框的底部为项目起个名字:Hello。让解决方案名字和这个一样。用浏览按钮选择这个程序在本地储存的位置,然后单击确定。(提及Visual Studio的时候我一般会将使用鼠标叫做click,而在这个应用中我会使用一个触摸术语tap--轻触。专为触摸优化的Visual Studio版本可能要几年后才会出现)

         Visual Studio创建了一个叫做Hello的解决方案,在解决方案中有一个项目叫做Hello,在这个项目中还有一堆文件。这些文件在Visual Studio屏幕的右边的解决方案浏览器中被一一列出。每个Visual Studio的解决方案至少有一个项目,一个解决方案可能包括另外的应用项目和库。

         在这个项目的文件列表中包含一个叫做MainPage.xaml的文件,如果你点击挨着文件的小箭头,你将在它的下面看到一个叫做MainPage.xaml.cs的文件。

  

    

你可以通过双击或者是右键打开,看一看这两个文件。

         MainPage.xaml和MainPage.xaml.cs文件在解决方案浏览器是联系在一起的,因为他们都是为了定义一个叫做MainPage的类。像Hello这种简单的程序,这个MainPage类定义了这个应用所有可视的用户界面。

         MainPage.xaml.cs有一个.cs的后缀代表了C#。抛开注释,MainPage.xaml.cs.文件应该包含了如下C#代码:

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using Windows.Foundation;
using Windows.Foundation.Collections;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
using Windows.UI.Xaml.Controls.Primitives;
using Windows.UI.Xaml.Data;
using Windows.UI.Xaml.Input;
using Windows.UI.Xaml.Media;
using Windows.UI.Xaml.Navigation;
namespace Hello
{
     public sealed partial class MainPage : Page
     {
          public MainPage()
          {
             this.InitializeComponent();
          }
          protected override void OnNavigatedTo(NavigationEventArgs e)
          {
          }
     }
}

所有你预先需要的命名空间,都要通过using指令,引入这个文件。你会发现大多数的MainPage.xaml.cs文件不需要所有的这些命名空间,还有很多其他的MainPage.xaml.cs需要一些另外的命名空间。

这些命名空间通过第一个关键字可以分成两类:

         System.*     新Windows 8应用的.net框架

         Windows.*   Windows运行时(WinRT)

根据Using指令的列表,以Windows.UI.Xaml开头的命名空间在Windows运行时中扮演了一个重要的角色。

        接下来,这个MainPage.xaml.cs文件定义了一个叫Hello的命名空间(和项目名称一样)和一个叫做MainPage类,这个类继承了Page类。Page类是Windows运行时的一部分。

        Windows8 API的文档是通过命名空间来编写的,因此如果你想找Page类的文档,了解它被定义的命名空间是非常有用的。让我们把鼠标停在MainPage.xaml.cs源代码的Page上,你就会发现Page是在Windows.UI.Xaml.Controls命名空间中。

MainPage类的构造函数中有一个InitializeComponent方法(这个我将会稍后说一下),这个类还包含一个重写方法OnNavigatedTo。Windows 8应用总会有一个类似于网站的页面导航结构。因此他们总是包含多个继承了Page的类。为了实现导航的目的,Page类定义了一些虚方法:OnNavigatingFrom,OnNavigatedFrom,还有OnNavigatedTo。这个OnNavigatedTo重写方法是当页面变为活动页面时进行初始化的好地方。但是这都是为以后打算的,在本书的早期的章节中大多数程序都只有一个页面。我将更多的提到一个应用的页面(Page)而不是窗口(Window),在应用下面仍然有一个窗口(Window),但是它并没有Page那么重要。

注意在MainPage类的定义中有一个partial关键字。这个关键字意味着,这个类的定义是有其他部分在另外的C#源代码文件的。正如你看到的,确实是这样。然而从概念上说,MainPage类另外的部分并不是在另一个C#代码中,而是在MainPage.xaml文件:

<Page
      x:Class="Hello.MainPage"
      IsTabStop="false"
      xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
      xmlns:local="using:Hello"
      xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
      xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d">
      <Grid Background="{StaticResource ApplicationPageBackgroundThemeBrush}">
      </Grid>
</Page>




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值