Il concetto di risorsa è molto semplice, qualsiasi elemento in Silverlight può essere una risorsa. L'obbiettivo è quello di rendere tali elementi riutilizzabili all'interno dell'applicazione. Le risorse sono contenute all'interno di oggetti ResourceDictionary, ovvero collezioni di tipo dizionario formate da coppie <chiave, valore> (Key, Value), dove ogni elemento è composto da un oggetto (la risorsa) e da una chiave identificativa univoca.
Tutti i controlli, più l'oggetto Application, espongono la proprietà Resources di tipo ResourceDictionary, quindi possono contenere risorse, questo permette di creare delle vere e proprie gerarchie di risorse. Per ottenere una risorsa sfruttiamo il Markup Extension StaticResource. Vediamo un esempio.
<StackPanel>
<StackPanel.Resources>
<LinearGradientBrush x:Key="myGradientBrush" StartPoint="0,0" EndPoint="1,1">
<GradientStop Color="#FF575757" />
<GradientStop Color="#FFCDCDCD" Offset="1" />
</LinearGradientBrush>
</StackPanel.Resources>
<TextBlock Text="Guida Silverlight"
Foreground="{StaticResource myGradientBrush}" />
<TextBlock Text="HTML.IT"
Foreground="{StaticResource myGradientBrush}" />
</StackPanel>
Nel precedente codice un oggetto LinearGradientBrush viene creato come risorsa all'interno dello StackPanel e successivamente applicato come Foreground per entrambi i controlli TextBlock.
Il livello di visibilità di una risorsa dipende da dove è stata definita all'interno dello XAML. Per esempio se nel precedente codice spostiamo la definizione della risorsa sotto i TextBlock, essa non sarà più visibile dai controlli, quindi a run-time sarà sollevata un'eccezione.
<StackPanel>
<TextBlock Text="Guida Silverlight"
Foreground="{StaticResource myGradientBrush}" />
<TextBlock Text="HTML.IT"
Foreground="{StaticResource myGradientBrush}" />
<StackPanel.Resources>
<LinearGradientBrush x:Key="myGradientBrush" StartPoint="0,0" EndPoint="1,1">
<GradientStop Color="#FF575757" />
<GradientStop Color="#FFCDCDCD" Offset="1" />
</LinearGradientBrush>
</StackPanel.Resources>
</StackPanel>
Le risorse possono essere definite all'interno dei controlli, a livello di applicazione oppure distribuiti in file separati.
LINQ e la trappola della 'deferred execution'Una "trappola" in cui si può incappare utilizzando il risultato di... |
C#, le Custom Type ConversionConversioni personalizzate tra classi, creare metodi particolari per... |
Introduzione a Entity FrameworkIl framework ORM messo a disposizione da .NET |
Repeater: visualizzare un feed RSSUtilizzare il controllo XMLDataSource e sfruttare il metodo XPath()... |
Repeater, il server control "semplice"Cos'è e come funziona il controllo Repeater |
Guida ASP.NET MVC Best PracticesUn workflow dettagliato e ricco di suggerimenti pratici per... |
Guida ASP.NET Starter KitUn modo semplice per imparare ad utilizzare le tecnologie Microsoft... |
Guida Visual Studio 2010L'ambiente di sviluppo di riferimento per sviluppare applicazioni su... |
Ogni giovedì, direttamente nella tua e-mail: articoli, guide, tutorial e script ASP, ASP.Net, SQL server e IIS.
Iscriviti alla newsletter
|
|
Corso Progettazione database11 Maggio 2012 a Milano |
|
|
Amministratore di Reti Windows Server 200811 Giugno 2012 a Milano |
|
Nessun corso previsto |