Visual Studio 11 消費者預覽版支援使用 C++ 建立 Metro 風格的應用程式,這對廣大本地應用開發人員來說是一個大訊息。這裡我們來建立一個非常簡單的 Metro 應用。
啟動 Visual Studio 並通過 Visual C++>Windows Metro Style>Blank Application 模板建立一個項目.
“Hello world”
開啟 BlankPage.xaml 檔案,滾動到代碼底部並定位 Grid 元素,然後插入一個 TextBlock,代碼如下:
複製代碼 代碼如下:
<Grid Background="{StaticResource ApplicationPageBackgroundBrush}">
<TextBlock Text="Hello world" Margin="12,20" Style="{StaticResource SubheaderTextStyle}"/>
</Grid>
Margin 屬性是文本離邊界之間的距離值,這裡我們設定左邊距離 12px,頂部距離 20px。你也可以修改 FontSize 屬性值來改變字型大小。
如果你現在運行應用程式,那將會是一個黑屏上顯示 Hello world 文本在左上方。你可以通過 BlankPage.xaml 來定義應用的 UI 外觀,但代碼邏輯存放在 BlankPage.xaml.h 和BlankPage.xaml.cpp 檔案中,這兩個檔案和 BlankPage.xaml 放在同一個目錄。
這是一個普通的 C++ 類,但有所不同,有一些新的擴充文法,成為 C++/CX,意思是 Component extensions. 純 C++ 不能用於開發 Metro 應用,但使用純 WinRT 會讓代碼變得很笨重,因為 Metro 世界所有都是 COM 物件。C++/CX 擴充可以讓 C++ 程式員無需瞭解太多非標準的擴充。通過 AddRef 和 Release 的調用可隱藏更多的技術細節。
C++ to XAML
你可以通過添加 x:Name="txtHello" 來為在 XAML 定義的 TextBlock 取個名字,並可設定值。然後你就可以使用如下代碼來操作該文本元素。將下面代碼添加到 BlankPage::OnNavigatedTo 方法:
txtHello->Text = "Hello world!!!";
運行程式,你將看到如下圖所示的結果:
雖然上述例子並不值得太激動,不過想想你當時學習 Win32、MFC 和 WTL 開發,這已經是非常簡單了。