线性梯度刷淡化WPF
题
我有一个颜色的刷子的刷子。我喜欢刷子外观的方式,但希望它淡化在底部三分之一透明。任何想法如何做到这一点?
<LinearGradientBrush
x:Key="HeaderBackgroundBrush"
EndPoint=".5,1"
StartPoint="1,0">
<GradientStop Color="#006699" Offset="1"/>
<GradientStop Color="#80A8CC" Offset="0.5"/>
</LinearGradientBrush>
. 解决方案
我不确定只能在刷子级别工作,但是您可以将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}">
. 其他提示
只需将颜色指定为如此:#aarrgbb。然后给出你的最后一个渐变停止alpha值0(完全透明;在您的情况下#0080A8CC)。hth。
如果在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));
. 不隶属于 StackOverflow