Linear Gradient Brush Fade WPF

前端 未结 3 1400
陌清茗
陌清茗 2020-12-16 23:53

I have a brush that colors the background of a header. I like the way the brush looks but would like it to fade to transparent in the bottom third. Any ideas how to do this?

相关标签:
3条回答
  • 2020-12-17 00:11

    If you want to do it in C# use the following code. This will give you a light pink/salmon to fully transparent brush. Change the #FF and #00 to get a different transparency gradient.

    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));
    
    0 讨论(0)
  • 2020-12-17 00:20

    I'm not sure you can do it by working only at the brush level, however you could apply an OpacityMask to your control:

    <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}">
    
    0 讨论(0)
  • 2020-12-17 00:31

    just specify the colors as ARGB (including alpha) like this: #AARRGGBB. Then give your last gradient stop an alpha value of 0 (fully transparent; in your case #0080A8CC). HTH.

    0 讨论(0)
提交回复
热议问题