Il controllo Ellipse permette di creare un ellisse date le sue dimensioni di larghezza ed altezza. Per l'ellisse è possibile impostare un riempimento che può essere uniforme o complesso quale ad esempio un gradiente od una immagine di riempimento. Vi sono quindi le due proprietà Stroke e StrokeThickness per impostare colore e dimensione della linea di delimitazione dell'ellisse. Il codice XAML per creare un ellisse è il seguente:
<Ellipse
Width="200"
Height="160"
Fill="Red"
Stroke="Black"
StrokeThickness="3" />
Mentre in C# avremo:
Ellipse myEllipse = new Ellipse();
myEllipse.Height = 100;
myEllipse.Width = 200;
SolidColorBrush redBrush = new SolidColorBrush();
redBrush.Color = Colors.Red;
SolidColorBrush blackBrush = new SolidColorBrush();
blackBrush.Color = Colors.Black;
myEllipse.StrokeThickness = 3;
myEllipse.Stroke = blackBrush;
myEllipse.Fill = redBrush;
myGrid.Children.Add(myEllipse);
Se impostiamo i valori di Width ed Height allo stesso valore, otteniamo un cerchio. Per impostare un riempimento che non sia un semplice colore uniforme, possiamo specificare per la proprietà
Fill un
LinearGradientBrush in questo modo:
<Ellipse
Width="200"
Height="160"
Fill="Red"
Stroke="Black"
StrokeThickness="3">
<Ellipse.Fill>
<LinearGradientBrush StartPoint="0,0" EndPoint="1,1">
<GradientStop Color="White" Offset="0.50" />
<GradientStop Color="Blue" Offset="1.0" />
</LinearGradientBrush>
</Ellipse.Fill>
</Ellipse>
Questo codice visualizza un ellisse riempito per metà con il colore bianco e per metà con il colore blu in modo tale che il passaggio tra i due colori sia graduale e sfumato.
In alternativa potremmo anche specificare una immagine di sfondo da utilizzare come riempimento del nostro ellisse (lo stesso discorso vale anche per il rettangolo):
<Ellipse
Width="200"
Height="160"
Fill="Red"
Stroke="Black"
StrokeThickness="3">
<Ellipse.Fill>
<ImageBrush ImageSource="sfondo.jpg" />
</Ellipse.Fill>
</Ellipse>
Aggiungendo inoltre anche la proprietà
Opacity impostata ad un valore compreso tra 0 ed 1, possiamo ottenere una leggera trasparenza del riempimento in modo da permettere la visione di eventuali elementi posti dietro l'oggetto:
<Ellipse
Width="200"
Height="160"
Fill="Red"
Stroke="Black"
StrokeThickness="3">
Opacity="0.4"
<Ellipse.Fill>
<ImageBrush ImageSource="sfondo.jpg" />
</Ellipse.Fill>
</Ellipse>