Pergunta

Eu tenho um pincel que colore o fundo de um cabeçalho.Gosto da aparência do pincel, mas gostaria que ficasse transparente no terço inferior.Alguma idéia de como fazer isso?

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

Solução

Não tenho certeza se você pode fazer isso trabalhando apenas no nível do pincel, mas você pode aplicar um OpacityMask ao seu controle:

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

Outras dicas

basta especificar as cores como ARGB (incluindo alfa) assim:#AARRGGBB.Em seguida, atribua ao último gradiente um valor alfa de 0 (totalmente transparente;no seu caso #0080A8CC).HTH.

Se você quiser fazer isso em C#, use o código a seguir.Isso lhe dará um pincel rosa claro/salmão a totalmente transparente.Altere #FF e #00 para obter um gradiente de transparência diferente.

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));
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top