Question

J'ai un pinceau qui colore l'arrière-plan d'un en-tête.J'aime l'apparence du pinceau, mais j'aimerais qu'il devienne transparent dans le tiers inférieur.Des idees pour faire cela?

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

La solution

Je ne suis pas sûr que vous puissiez le faire en travaillant uniquement au niveau du pinceau, mais vous pouvez appliquer un OpacityMask sous votre contrôle :

<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}">

Autres conseils

Spécifiez simplement les couleurs comme argum (y compris alpha) comme ceci: #AarrgGBB.Donnez ensuite à votre dernier gradient d'arrêter une valeur alpha de 0 (totalement transparent; dans votre cas # 0080A8CC).Htth.

Si vous voulez le faire en C #, utilisez le code suivant.Cela vous donnera un léger rose / saumon à une brosse entièrement transparente.Changer le #FFF et # 00 pour obtenir un gradient de transparence différent.

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));

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top