Линейная градиентная щетка исчезает WPF
Вопрос
У меня есть кисть, которая окрашивает фон заголовка.Мне нравится, как кисть выглядит, но хотела бы, чтобы она исчезала, чтобы прозрачным в нижней трети.Любые идеи, как это сделать?
<LinearGradientBrush
x:Key="HeaderBackgroundBrush"
EndPoint=".5,1"
StartPoint="1,0">
<GradientStop Color="#006699" Offset="1"/>
<GradientStop Color="#80A8CC" Offset="0.5"/>
</LinearGradientBrush>
. Решение
Я не уверен, что вы можете сделать это, работая только на уровне кисти, однако вы можете применить генеракодицетагкод к вашему управлению:
<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}">
. Другие советы
Просто укажите цвета как ARGB (включая альфа), как это: #aargerggbb.Затем дайте свой последний градиент Остановите альфа-значение 0 (полностью прозрачно; в вашем случае # 0080A8CC).Ем.
Если вы хотите сделать это в 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