Windows Phone 8的Windows Phone 7自动暗/光图标支持

前端之家收集整理的这篇文章主要介绍了Windows Phone 8的Windows Phone 7自动暗/光图标支持前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我认为这是一个很常见的问题,但是我找不到合适的解决方案。众所周知,WP支持黑色和浅色的主题用户可以改变主题,并有办法覆盖他的决定,并显示您选择的颜色主题中的所有内容。但是,我只是想对这两种主题类型做出反应,我想以正确的颜色显示图标。

如果您使用应用程序栏,您可以从许多内置图标中进行选择,这些图标将自动从浅到暗地反转,反之亦然。

为什么不支持正常的图像?例如:我想显示一个电话图标。我从内置的图标中选择了一个,并将其从Microsoft SDK文件夹复制到我的项目的Image文件夹。如果用户使用黑色主题,一切都会很好,因为白色电话图标将在黑色背景上显示。但是如果他切换到光的主题,这个图标将是隐形的,因为它是白色的白色。

我完全了解文本框或背景颜色的风格资源,使用手机的口音或主题颜色。但是为什么呢,我没有支持添加到我的XAML页面的图像的简单图标?

当然,如果用户处于黑暗或浅色模式,我可以在页面的构造函数中进行检测。然后我将加载电话图标的黑色或白色版本。但是,每次访问页面时都会执行此检查,并减缓所有事情。每次添加主题感知图像时,手动添加主题的检查也很烦人。

是否有任何解决方案,只适用于XAML?还是至少容易维护?为什么从一开始就不能使用SDK中的内置图像?它们已经在黑暗和轻型版本中可用,并已在应用程序栏中使用。

如果您希望图标在动作栏中运行,只需要是白色(如果是黑色主题)和黑色(如果是浅色主题),则可以将图像作为不透明蒙版添加到矩形中,如下所示:
<Rectangle Fill="{StaticResource PhoneForegroundBrush}" Width="48" Height="48" >
    <Rectangle.OpacityMask>
        <ImageBrush ImageSource="/Images/my.icon.png" />
    </Rectangle.OpacityMask>
</Rectangle>

其中my.icon.png是一个白色图像,就像您可以选择的动作栏。

猜你在找的Windows相关文章