Visual Studio 11 消費(fèi)者預(yù)覽版支持使用 C++ 創(chuàng)建 Metro 風(fēng)格的應(yīng)用程序,這對(duì)廣大本地應(yīng)用開(kāi)發(fā)者來(lái)說(shuō)是一個(gè)大消息。這里我們來(lái)創(chuàng)建一個(gè)非常簡(jiǎn)單的 Metro 應(yīng)用。
啟動(dòng) Visual Studio 并通過(guò) Visual C++>Windows Metro Style>Blank Application 模板創(chuàng)建一個(gè)項(xiàng)目.
“Hello world”
打開(kāi) BlankPage.xaml 文件,滾動(dòng)到代碼底部并定位 Grid 元素,然后插入一個(gè) TextBlock,代碼如下:
<TextBlock Text="Hello world" Margin="12,20" Style="{StaticResource SubheaderTextStyle}"/>
</Grid>
Margin 屬性是文本離邊界之間的距離值,這里我們?cè)O(shè)置左邊距離 12px,頂部距離 20px。你也可以修改 FontSize 屬性值來(lái)改變字體大小。
如果你現(xiàn)在運(yùn)行應(yīng)用程序,那將會(huì)是一個(gè)黑屏上顯示 Hello world 文本在左上角。你可以通過(guò) BlankPage.xaml 來(lái)定義應(yīng)用的 UI 外觀,但代碼邏輯存放在 BlankPage.xaml.h 和BlankPage.xaml.cpp 文件中,這兩個(gè)文件和 BlankPage.xaml 放在同一個(gè)目錄。
這是一個(gè)普通的 C++ 類(lèi),但有所不同,有一些新的擴(kuò)展語(yǔ)法,成為 C++/CX,意思是 Component extensions. 純 C++ 不能用于開(kāi)發(fā) Metro 應(yīng)用,但使用純 WinRT 會(huì)讓代碼變得很笨重,因?yàn)?Metro 世界所有都是 COM 對(duì)象。C++/CX 擴(kuò)展可以讓 C++ 程序員無(wú)需了解太多非標(biāo)準(zhǔn)的擴(kuò)展。通過(guò) AddRef 和 Release 的調(diào)用可隱藏更多的技術(shù)細(xì)節(jié)。
C++ to XAML
你可以通過(guò)添加 x:Name="txtHello" 來(lái)為在 XAML 定義的 TextBlock 取個(gè)名字,并可設(shè)置值。然后你就可以使用如下代碼來(lái)操作該文本元素。將下面代碼添加到 BlankPage::OnNavigatedTo 方法:
1
|
txtHello->Text = "Hello world!!!" ; |
運(yùn)行程序,你將看到如下圖所示的結(jié)果:
雖然上述例子并不值得太激動(dòng),不過(guò)想想你當(dāng)時(shí)學(xué)習(xí) Win32、MFC 和 WTL 開(kāi)發(fā),這已經(jīng)是非常簡(jiǎn)單了。