前几天发现我的App有个bug,即某个页面的电话图标在白底黑字的主题下会消失。我的电话图标用的是一个白色的PNG图片,在WP默认的黑底白字主题下,就像是这样:

然而换了白底黑字,图就看不到了:

要解决这个问题我们固然可以准备两张图片然后用编程的方法去加载,但最简单的做法是通过Brush来搞:

原先的代码是这样的:

<Image Source="Assets/appbar.phone.png" Height="84" Width="84" Tap="ImgPhone_OnTap" />

用了Brush给它刷上WP当前主题的前景色(PhoneForegroundBrush):

<Rectangle Fill="{StaticResource PhoneForegroundBrush}" 
           Height="84" 
           Width="84" 
           Tap="ImgPhone_OnTap">
    <Rectangle.OpacityMask>
        <ImageBrush ImageSource="Assets/appbar.phone.png" />
    </Rectangle.OpacityMask>
</Rectangle>

于是在白色背景的主题下我们就得到了自动被刷成黑色的图片: