Domanda

Ho un pennello che colora lo sfondo di un'intestazione.Mi piace il modo in cui il pennello sembra ma vorrebbe svanire a trasparente nel terzo inferiore.Qualche idea Come fare questo?

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

È stato utile?

Soluzione

Non sono sicuro che tu possa farlo funzionando solo a livello del pennello, tuttavia è possibile applicare un OpacityMask al tuo controllo:

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

Altri suggerimenti

Basta specificare i colori come ARGB (incluso Alpha) come questo: #ArRggbb B.Quindi dare al tuo ultimo gradiente un valore alfa alto di 0 (completamente trasparente; nel tuo caso # 0080a8cc).Hth.

Se si desidera eseguirlo in c # usa il seguente codice.Questo ti darà un leggero rosa / salmone a spazzola completamente trasparente.Cambia il #ff e # 00 per ottenere un gradiente di trasparenza diverso.

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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top