在WinRT应用程序中,Common文件夹的StandardStyles.xaml文件已经给我们自定义了一个名为AppBarButtonStyle的Button样式,通过它我们可以快速创建Metro风格的图标。
例如,我们只要如下这样一行代码:
<Button AutomationProperties.Name="Mail" Content="@" Style="{StaticResource AppBarButtonStyle}"/>
即可获得这样的一个图标。
从示例中可以看到,应用了AppBarButtonStyle样式后,通过Content可以设置图标内容(这个不限于字符的,也可以设置为字符串,不过过长了显示不出来),通过附加属性AutomationProperties.Name可以设置按钮文本,其它各种效果(如图标按下等样式变换等)在AppBarButtonStyle中已经设置好了,无需更多设置。
可能有人会说可用的字符符号有限,这种方式不够用。实际上,这个样式是基于Segoe UI Symbol字体的,这个字体本身就包含了大量符号。


对于那些非字符的符号,在XAML中插入的方式如下:
-
首先通过字符映射表查看到字符的编码,如前面的"♫"符号对应的编码就是0x266b,
-
修改Content为相应的符号。对于前面的0x266b,我们就把Content内容改成Content="♫"即可。
这种方式其实并不限于Segoe UI Symbol字体,系统中还有很多其它符号字体,如常见的就有Wingdings,Wingdings2,Wingdings3等(不知道到时候WOA的机器中是否会带这些字体),这些字体也都可以使用,只要我们修改下FontFamily属性即可。更进一步,其Content属性并不限于字符,完全可以自绘出很复杂的样式,并不限于系统字体中的符号。
这种方式创建图表非常简单快捷,如果对这个样式的感觉单调,也可换下这篇文章中的风格。

本文主要内容参考自oschina文章创建 Windows 8 RT/Metro 图标,如果对这种方式感兴趣,建议看下原文。