Visual Studio 11 消费者预览版支持使用 C++ 创建 Metro 风格的应用程序,这对广大本地应用开发者来说是一个大消息。这里我们来创建一个非常简单的 Metro 应用。
启动 Visual Studio 并通过 Visual C++>Windows Metro Style>Blank Application 模板创建一个项目.
“Hello world”打开 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 的调用可隐藏更多的技术细节。
C++ to XAML你可以通过添加 x:Name="txtHello" 来为在 XAML 定义的 TextBlock 取个名字,并可设置值。然后你就可以使用如下代码来操作该文本元素。将下面代码添加到 BlankPage::OnNavigatedTo 方法:
1
txtHello->Text = "Hello world!!!";
运行程序,你将看到如下图所示的结果:
虽然上述例子并不值得太激动,不过想想你当时学习 Win32、MFC 和 WTL 开发,这已经是非常简单了。