In WPF le varie proprietà BackGround, ForeGround, Stroke, Fill... che specificano alcune caratteristiche visive tipiche dei controlli, sono di tipo Brush, concetto conosciuto dai tempi di Win32 e presente nel FX 2.0.
Oltre alla classica SolidColorBrush, che identifica un pennello di colore uniforme troviamo anche altri tipi di Brush già noti quali LinearGradientBrush e RadialGradientBrush.
L'esempio che segue crea una textbox con lo sfondo sfumato:

 
<TextBox Width="200" Height="40" Text="Hello!" FontSize="14" Margin="10">
  <TextBox.Background>
    <LinearGradientBrush StartPoint="0.5,0" EndPoint="0.5,1">
      <LinearGradientBrush.GradientStops>
         <GradientStop Color="#FFFF0000" Offset="0" />
         <GradientStop Color="#7FFF0000" Offset="0.5" />
         <GradientStop Color="#00000000" Offset="1" />
      </LinearGradientBrush.GradientStops>
    </LinearGradientBrush>
  </TextBox.Background>
</TextBox>

L'esempio è abbastanza semplice: La proprietà Background è associata in questo caso ad un LineadGradientBrush al quale sono stati aggiunti 3 punti di gradazione in direzione verticale (regolati dagli attributi StartPoint e EndPoint)
La stessa Brush può essere applicato alla proprietà OpacityMask della textbox (ereditata da UIElement) ottenendo in questo caso un effetto trasparenza controllato dal valore di Alpha definito nell'attributo Color (R,G,B sono in questo caso ignorati).

In questo caso la LinearGradientBrush è applicata ad un Button ottenendo un pulsante a strisce trasparenti

<Button Height="100" Width="200" Margin="10" Content="Ok" FontSize="14" Foreground="Yellow" VerticalAlignment="Top" Background="Red">
 <Button.OpacityMask>
  <LinearGradientBrush StartPoint="0,0" EndPoint="1,1">
     <LinearGradientBrush.GradientStops>
       <GradientStop Color="#FF000000" Offset="0" />
       <GradientStop Color="#00000000" Offset="0.25" />
       <GradientStop Color="#FF000000" Offset="0.5" />
       <GradientStop Color="#00000000" Offset="0.75" />
       <GradientStop Color="#FF000000" Offset="1" />
     </LinearGradientBrush.GradientStops>
  </LinearGradientBrush>
 </Button.OpacityMask>
</Button>

A OpacityMask è possibile associare qualsiasi tipo di Brush: ImageBrush e DrawingBrush incluse.
Un interessante post che spiega nei dettagli la proprietà OpacityMask lo trovate qui