我想使用LinearGradientBrush将一些元素(矩形和椭圆)从强调颜色淡化为透明。但是 - 透明色始终是一种颜色,看起来像“透明”的颜色是#00FFFFFF - 白色,不透明度为0%。
我想从PhoneAccentColor淡出到 PhoneTransparentAccentColor 。因此,如果我的强调颜色为红色,我想淡入#00FF0000,如果它是绿色,我想淡入#0000FF00。
我找不到任何内置的透明口音颜色资源,那么我的选择是什么?我已经尝试过以下选项,但没有取得真正的成功,我在普通搜索频道上找不到这个主题,所以我不确定我在这里缺少什么。
我提出了一些建议(但是如前所述没有取得真正的成功):
答案 0 :(得分:4)
我想不出用xaml直接指定透明强调色的方法。我确实有几个可能的解决方案。
如果可能,您可以设置对象的不透明度而不是颜色本身的动画。
你可以在代码中生成颜色(可能是在启动时)
var accentColor = (Color)Application.Current.Resources["PhoneAccentColor"];
var transparentAccentColor = accentColor.A = 0;
然后,您可以将颜色存储为资源,并在xaml中引用它。
Application.Current.Resources.Add("TransparentPhoneAccentColor", transparentAccentColor);
希望这会有所帮助。
答案 1 :(得分:1)
作为一般准则,由于可用的颜色支持,请避免在手机上使用渐变色。
您可以尝试在LinearGradientBrush中使用OpacityMask来获得所需的结果。
虽然在您使用强调色时不适用于您的情况,但如果您能够生成包含渐变的图像,则应该看到How can I correct color banding in windows phone 7?有关如何避免条带的详细信息。