


















首先,要好好解释一下OpacityMask,先来回答几个问题:
总结一下OpacityMask的特性:
实际用处
windows phone开发要注意兼容dark theme和light theme,难道非要给两种主题配不同的图片资源不可?其实可以用OpacityMask巧妙地解决。
在网上找到的icon,颜色经常与我们想要的不一样,就算是单色的图形,你给它用另外一种单色填充往往会产生锯齿,因为填充的时候,边缘的一些透明机器处理不好。比如我有一个白色的图案(该图案的背景是透明的)想用于一个按钮,但想把它变成红色,该如何做呢?
只要把按钮的背景色改成红色。
<Button Background="Red"> <Button.OpacityMask> <ImageBrush Stretch="None" ImageSource="icons/appbar.delete.rest.png"/> </Button.OpacityMask> </Button>
这样任意变颜色也不会产生锯齿了。
那怎样设置dark和light主题下都适当的颜色呢?
在两种主题下,背景色是不一样的,同名的资源也不尽相同,例如PhoneContrastBackgroundBrush,在不同主题下有着不同的颜色。
<Button Background="{StaticResource PhoneContrastBackgroundBrush}">
<Button.OpacityMask>
<ImageBrush Stretch="None" ImageSource="icons/appbar.delete.rest.png"/>
</Button.OpacityMask>
</Button>
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。