Oggetti vettoriali
In Silverlight gli elementi grafici sono rappresentati dagli oggetti Shape e dalle Geometry , oltre ai già citati Rectangle ed Ellipse sono Shape anche:
- Polygon

<Polygon StrokeThickness="30" StrokeMiterLimit="0" Points="0,0 400,100" Stroke="#FF000000" Canvas.Top="30" Canvas.Left="30"/>- Line

<Line X1="34" Y1="42" X2="342" Y2="20" StrokeThickness="13" Canvas.Top="80" Stroke="#FFFF0404"/>- Polyline

<Polyline Stroke="Black" StrokeThickness="10" StrokeMiterLimit="0" Points="20,20 20,100 200,10 300,100 100,150" Canvas.Top="143.5" Fill="#FFBF2626" FillRule="EvenOdd" Canvas.Left="36.691"/>- Path

<Path Stretch="Fill" StrokeThickness="6" Data="M21.999974,247.47017 L43.000022,330.47043 128.0003,345.47048 160.00039,256.4702 97.000202,195.47001 z" Height="150" Width="138" Canvas.Left="86" Canvas.Top="155" Fill="#FF00FF29"/>Una proprietà molto utile è Stretch : condivisa tra gli oggetti Shape, consente la gestione dello spazio occupato dalla forma definito con le proprietà Height e Width : i valori consentiti sono None, Fill, Uniform e UniformToFill; il valore Uniform ridimensiona la forma fino a riempire l'ingombro impostato mantenendone le giuste proporzioni, risulta molto utile nello scenario in cui si voglia realizzare un'interfaccia di grandezza adattabile alle dimensioni del browser. È importante tenere sotto controllo il consumo di risorse in termini di CPU usando il valore Uniform della proprietà Stretch all'oggetto Path.
La proprietà Data dell'oggetto Path sfrutta un mini-linguaggio con concisa sintassi per definirne la forma, tuttavia il Type Converter sottintende ad un oggetto di tipo Geometry attraverso cui descrivere il Path stesso.
Gli oggetti Geometry rappresentano effettivamente primitive grafiche e per loro struttura sono molto flessibili consentendo una capillare manipolazione dei vertici, delle curve e dell'interazione tra loro, sono oggetti Geometry i seguenti:
- RectangleGeometry
- EllipseGeometry
- LineGeometry
- PathGeometry
L'uso degli oggetti di tipo Geometry è molto utile nella creazione e nella gestione della forma di altri oggetti:
<Path Fill="Red" Stroke="Black" StrokeThickness="1">
<Path.Data>
<RectangleGeometry Rect="0,0,200,100" RadiusX="10" RadiusY="10" />
</Path.Data>
</Path>

La flessibilità delle Geometry emerge creando forme più complesse attraverso l'oggetto GeometryGroup :
<Path Fill="Red">
<Path.Data>
<GeometryGroup FillRule="nonzero">
<RectangleGeometry Rect="0,0,200,100" RadiusX="10" RadiusY="10" />
<RectangleGeometry Rect="50,50,200,100" RadiusX="10" RadiusY="10" />
</GeometryGroup>
</Path.Data>
</Path>

Nel precedente esempio il valore nonzero della proprietà FillRule fonde le due geometrie trattandole come elemento unico; è possibile sfruttare questi oggetti anche come Clip per creare gli effetti tipo maschera:
<Image Canvas.Top="200" Source="small_nebula.png">
<Image.Clip>
<GeometryGroup FillRule="nonzero">
<RectangleGeometry Rect="40,0,50,150" RadiusX="10" RadiusY="10" />
<RectangleGeometry Rect="50,50,100,150" RadiusX="10" RadiusY="10" />
</GeometryGroup>
</Image.Clip>
</Image>

Attenzione: Questo articolo contiene un allegato
Contenuti dell'articolo
- Pagina 1
- Pagina 2
- Pagina 3
- Pagina 5
Aggiungi un nuovo commento »»»
Per inserire un commento, devi registrarti alla nostra community.







Difficoltà

Stampa
Download


10annidi.ASPItalia.com: iscriviti alla competizione e vinci fantastici premi ogni mese!
