Линейная градиентная кисть Fade WPF - PullRequest
7 голосов
/ 21 июля 2010

У меня есть кисть, которая окрашивает фон заголовка.Мне нравится, как выглядит кисть, но хотелось бы, чтобы она стала прозрачной в нижней трети.Есть идеи как это сделать?

<LinearGradientBrush 
  x:Key="HeaderBackgroundBrush" 
  EndPoint=".5,1" 
  StartPoint="1,0">
  <GradientStop Color="#006699" Offset="1"/>
  <GradientStop Color="#80A8CC" Offset="0.5"/>
</LinearGradientBrush>

Ответы [ 3 ]

24 голосов
/ 21 июля 2010

Я не уверен, что вы можете сделать это, работая только на уровне кисти, однако вы можете применить 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}">
9 голосов
/ 21 июля 2010

просто укажите цвета как ARGB (включая альфа), как это: #AARRGGBB. Затем присвойте своему последнему градиентному ограничителю альфа-значение 0 (полностью прозрачное; в вашем случае # 0080A8CC). НТН.

0 голосов
/ 27 апреля 2018

Если вы хотите сделать это в 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));
...