我有一个用于为标题背景着色的画笔。我喜欢画笔的外观,但希望它在底部三分之一处淡出透明。任何想法如何做到这一点?
<LinearGradientBrush
x:Key="HeaderBackgroundBrush"
EndPoint=".5,1"
StartPoint="1,0">
<GradientStop Color="#006699" Offset="1"/>
<GradientStop Color="#80A8CC" Offset="0.5"/>
</LinearGradientBrush>
答案 0 :(得分:24)
我不确定你是否只能在画笔级别工作,但是你可以将OpacityMask
应用于你的控件:
<LinearGradientBrush
x:Key="HeaderBackgroundOpacityMask"
StartPoint="0,0"
EndPoint="0,1">
<GradientStop Color="#FFFFFFFF" Offset="0"/>
<GradientStop Color="#FFFFFFFF" Offset="0.667"/>
<GradientStop Color="#00FFFFFF" Offset="1"/>
</LinearGradientBrush>
...
<Border Background="{StaticResource HeaderBackgroundBrush}"
OpacityMask="{StaticResource HeaderBackgroundOpacityMask}">
答案 1 :(得分:9)
只需将颜色指定为ARGB(包括alpha),如下所示:#AARRGGBB。然后给你的最后一个渐变停止alpha值为0(完全透明;在你的情况下#0080A8CC)。 HTH。
答案 2 :(得分:0)
如果要在C#中执行此操作,请使用以下代码。这将为您提供浅粉色/鲑鱼到完全透明的刷子。更改#FF和#00以获得不同的透明度渐变。
var startColour = (SolidColorBrush)new BrushConverter().ConvertFrom("#FFff99a8");
var endColour = (SolidColorBrush)new BrushConverter().ConvertFrom("#00ff99a8");
_dirtyColourBackground = new LinearGradientBrush(startColour.Color, endColour.Color,new Point(0,0),new Point(1,0));