ASP.Net  »  Guide  »  Guida Silverlight 

Line e Polyline



La maniera più semplice per inserire della grafica 2D all'interno di una applicazione Silverlight è tramite l'uso delle classi derivanti da Shape (namespace System.Windows.Shapes), che rappresentano semplici linee oppure forme base come ellissi, rettangoli e più in generale poligoni. Queste classi condividono la stessa classe base, perciò il loro utilizzo è abbastanza uniforme. La classe Shape a su sua volta eredita dalla classe FrameworkElement supportando così l'input da mouse e tastiera piuttosto che scenari come data binding e animazioni.

Line

Cominciamo l'analisi delle funzionalità di grafica messe a disposizione da Silverlight dall'elemento più basilare: Line, che rappresenta una linea che collega due punti definiti dalle proprietà X1,Y1,X2,Y2.

<StackPanel x:Name="LayoutRoot" Background="Azure">

  <Line X1="20" Y1="20" X2="100" Y2="20"
        Stroke="Black"
        StrokeThickness="10" />
  
  <Line X1="20" Y1="100" X2="100" Y2="20"
        Stroke="Black"
        StrokeThickness="10" />
</StackPanel>

Figura 49. Esempi di linee

Esempi di linee

Le coordinate si riferiscono all'angolo in alto a sinistra dell'elemento contenitore, nell'esempio lo StackPanel.

Polyline

La classe Polyline, a sua volta, rappresenta una sequenza di linee unite definite da un elenco di punti (proprietà Points).

L'elenco dei punti in XAML viene definito con una particolare sintassi espressa come "x1,y1 x2,y2", questo valore letterale sarà opportunamente trasformato da un TypeConverter. Tramite la proprietà Fill possiamo definire il colore di riempimento.

<StackPanel x:Name="LayoutRoot" Background="Azure">

  <StackPanel Orientation="Horizontal">
  
    <Polyline Margin="10" Stroke="Black" StrokeThickness="10"
              Points="20,20 100,100 100,10" />
    
    <Polyline Margin="10" Fill="Orange" Stroke="Black"
              StrokeThickness="10"
              Points="20,20 100,100 100,10" />
  </StackPanel>
  
  <StackPanel Orientation="Horizontal">
    
    <Polyline Margin="10" Stroke="Black" StrokeThickness="10"
              Points="20,20 100,100 200,10 300,100" />
    
    <Polyline Margin="10" Fill="Yellow" Stroke="Black"
              StrokeThickness="10"
              Points="20,20 100,100 200,10 300,100" />
  </StackPanel>
</StackPanel>

Figura 50. Esempi di polyline

Esempi di polyline

Per determinare l'area da riempire Silvelight utilizza dei particolari algoritmi che esamineremo in seguito.

Line e Polyline possiedono un insieme di proprietà legate a Stroke, che permettono un'ulteriore personalizzazione dell'aspetto della forma. Utilizzando StrokeStartLineCap e StrokeEndLineCap, possiamo scegliere fra diverse modalità di disegno per le due estremità della forma. I possibili valori sono: Flat, Round, Square e Triangle.

I differenti risultati sono visibili nell'immagine seguente:

Figura 51. Tipi di estremità della linea

Tipi di estremità della linea

Nel caso di Polyline, tramite la proprietà StrokeLineJoin andiamo ad agire sull'aspetto degli angoli formati dalle linee. I possibili vaolori sono: Miter, Bevel e Round.

Figura 52. Modificare l'aspetto degli angoli

Modificare l'aspetto degli angoli

Ultimi articoli ASP.Net

LINQ e la trappola della 'deferred execution'

Una "trappola" in cui si può incappare utilizzando il risultato di...

C#, le Custom Type Conversion

Conversioni personalizzate tra classi, creare metodi particolari per...

Introduzione a Entity Framework

Il framework ORM messo a disposizione da .NET

Repeater: visualizzare un feed RSS

Utilizzare il controllo XMLDataSource e sfruttare il metodo XPath()...

Repeater, il server control "semplice"

Cos'è e come funziona il controllo Repeater

Altri articoli

Guide ASP.Net

Guida ASP.NET MVC Best Practices

Un workflow dettagliato e ricco di suggerimenti pratici per...

Guida ASP.NET Starter Kit

Un modo semplice per imparare ad utilizzare le tecnologie Microsoft...

Guida Visual Studio 2010

L'ambiente di sviluppo di riferimento per sviluppare applicazioni su...

Altre guide

Newsletter @Microsoft Dev

Ogni giovedì, direttamente nella tua e-mail: articoli, guide, tutorial e script ASP, ASP.Net, SQL server e IIS.

Iscriviti alla newsletter

Altre newsletter

Corsi in aula

Corso Progettazione database

11 Maggio 2012 a Milano
Disponibilità: 6 Posti

Amministratore di Reti Windows Server 2008

11 Giugno 2012 a Milano
Disponibilità: 5 Posti

Nessun corso previsto