Vito Arconzo's Blog

.net, .net, .net & windows presentation foundation

I ColorBrush di WPF

Un buona parte delle proprietà esposte dai controlli di Windows Presentation Foundation è di tipo Brush. Questo non è altro che una sorta di "pennello" con cui rappresentare qualsiasi elemento visuale come il background o il bordo dell'elemento.

E' possibile impostare semplicemente un colore di base:

<Button Content="Button 1" Background="Red"/>

Tuttavia, la classe Brushes, è molto potente e permette la creazione di gradienti e altri tipi di colorazioni.

I Color Brush, che sono i più utilizzati, si dividono in SolidColorBrush, LinearGradientBrush e RadialGradientBrush.

La classe SolidColorBrush permette la definizione di semplici colori e questo può essere fatto utilizzando, come nell'esempio precedente, la stringa “Red” oppure il corrispondete valore esadecimale "#FF0000”. Alla conversione ci penserà WPF attraverso l'opportuno Converter.

SolidColorBrush

LinearGradientBrush permette la creazione di gradienti lungo un percorso.

<Button Content="Button 1" Foreground="White" >
  <Button.Background>
    <LinearGradientBrush>
      <GradientStop Offset="0" Color="Black"/>
      <GradientStop Offset="1" Color="Red"/>
    </LinearGradientBrush>
  </Button.Background>
</Button>
LinearGradient 

LinearGradientBrush contiene una collection di GradientStop che indicano i colori da utilizzare e, quest’ultima, espone la proprietà OffSet che indica l’ordine di apparizione del colore specificato. La proprietà OffSet può contenere un valore Double che va da 0 a 1.

Se ad esempio vogliamo un gradiente che parta dal colore nero per poi diventare rosso a metà “percorso” per chiudersi con il bianco, il LinearGradientBrush va definito nella seguente maniera:

<Button Content="Button 1" Foreground="White" >
  <Button.Background>
    <LinearGradientBrush>
      <GradientStop Offset="0" Color="Black"/>
      <GradientStop Offset="0.5" Color="Red"/>
      <GradientStop Offset="1" Color="White"/>
    </LinearGradientBrush>
  </Button.Background>
</Button>

Per default il punto iniziale del gradiente è l’angolo superiore sinistro mentre, il punto finale è l’angolo inferiore destro. Tuttavia, è possibile modificare questa impostazione utilizzando le proprietà StartPoint e EndPoint. Anche queste due proprietà possono assumere una coppia di valori da 0 a 1.

Infine, abbiamo il RadialGradientBrush che è praticamente identico in funzionalità al LinearGradientBrush con la differenza che il RadialGradientBrush crea un gradiente di forma ellittica.

<Button Content="Button 1" Foreground="White" >
  <Button.Background>
    <RadialGradientBrush>
      <GradientStop Offset="0" Color="Black"/>
      <GradientStop Offset="1" Color="White"/>
    </RadialGradientBrush>
  </Button.Background>
</Button>

radial

Esistono, inoltre, altri diversi tipi di Brushes per utilizzare altri tipi di riempimento come immagini bitmap, immagini create con gli oggetti disponibili in wpf (ellipse, rectangle, ...) o, addirittura oggetti Visual (Button, ComboBox, Page , etc) che vedremo, magari, in un prossimo eventuale post.

Posted: Jun 19 2007, 09:48 PM by VitoA | with 1 comment(s)
Filed under:

Comments

Vito Arconzo's Blog said:

Qualche tempo ho parlato dei ColorBrush di WPF. Un altro tipo di Brush molto utile sono i VisualBrush

# September 9, 2007 11:47 AM