Visual Studio 11 消費者預覽版支持使用 C++ 創建 Metro 風格的應用程序,這對廣大本地應用開發者來說是一個大消息。這裡我們來創建一個非常簡單的 Metro 應用。
啟動 Visual Studio 並通過 Visual C++>Windows Metro Style>Blank Application 模板創建一個項目.
打開 BlankPage.xaml 文件,滾動到代碼底部並定位 Grid 元素,然後插入一個 TextBlock,代碼如下:
1
<
Grid
Background
=
"{StaticResource ApplicationPageBackgroundBrush}"
>
2
<
TextBlock
Text
=
"Hello world"
Margin
=
"12,20"
Style
=
"{StaticResource SubheaderTextStyle}"
/>
3
</
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 的調用可隱藏更多的技術細節。
你可以通過添加 x:Name="txtHello" 來為在 XAML 定義的 TextBlock 取個名字,並可設置值。然後你就可以使用如下代碼來操作該文本元素。將下面代碼添加到 BlankPage::OnNavigatedTo 方法:
1
txtHello->Text =
"Hello world!!!"
;
運行程序,你將看到如下圖所示的結果:
雖然上述例子並不值得太激動,不過想想你當時學習 Win32、MFC 和 WTL 開發,這已經是非常簡單了。