《Windows程式設計第六版》譯文:第一章--標記語言和代碼:第一節 第一個項目(1)

來源:互聯網
上載者:User


 從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>




相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.