我想使用 LinearGradientBrush 将一些元素(矩形和椭圆)从强调色淡化为透明。然而 - 透明颜色始终是一种颜色,看起来“透明”颜色是 #00FFFFFF - 即白色,不透明度为 0%。
我想从 PhoneAccentColor 淡入 PhoneTransparentAccentColor。因此,如果我的强调色是红色,我想淡化为 #00FF0000,如果它是绿色,我想淡化为 #0000FF00。
我找不到任何用于透明强调的内置颜色资源,那么我在这里有什么选择?我已经尝试了下面的选项,但没有真正成功,而且我无法通过正常的搜索 channel 找到很多关于这个主题的信息,所以我不确定我在这里遗漏了什么。
我提出的一些建议(但没有如前所述真正成功):
- 在代码隐藏中创建自定义资源并将其推送到应用程序范围的资源字典中?
- 我可以在我的 ViewModel 上使用 Color 公开一个属性并绑定(bind)到它吗?
最佳答案
我想不出直接用 xaml 指定透明强调色的方法。我确实有几个可能的解决方案。
如果可能,您可以为对象的不透明度而不是颜色本身设置动画。
你可以在代码中生成颜色(可能在启动期间)
var accentColor = (Color)Application.Current.Resources["PhoneAccentColor"];
var transparentAccentColor = accentColor.A = 0;
然后您可以将颜色存储为资源并在 xaml 中引用它。
Application.Current.Resources.Add("TransparentPhoneAccentColor", transparentAccentColor);
希望这对您有所帮助。
关于silverlight - 透明强调色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4218830/