Pregunta

Tengo un pincel que colorea el fondo de un encabezado.Me gusta el aspecto del pincel, pero me gustaría que se volviera transparente en el tercio inferior.¿Alguna idea de como hacer esto?

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

Solución

No estoy seguro de que puedas hacerlo trabajando sólo al nivel del pincel, sin embargo, puedes aplicar un OpacityMask a tu 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}">

Otros consejos

Simplemente especifique los colores como ARGB (incluyendo Alpha) como este: #ArtagBBB.Luego, dé su último gradiente detenga un valor alfa de 0 (totalmente transparente; en su caso # 0080A8cc).Hth.

Si desea hacerlo en C # use el siguiente código.Esto le dará un rosa claro / salmón a un cepillo completamente transparente.Cambie el #FF y # 00 para obtener un gradiente de transparencia 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 bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top