Markup Extension è una particolare caratteristica che permette di estendere l'espressività di XAML. In maniera simile ad i Type Converter, le Markup Extension a runtime restituiscono il riferimento ad un oggetto (o un grafo di oggetti) a partire da un valore letterale. Tuttavia hanno una potenzialità maggiore rispetto ad i Type Converter ed a differenza di quest'ultimi sfruttano una sintassi ben precisa, composta da una espressione letterale racchiusa fra parentesi graffe.
Vediamo un frammento di codice XAML che mostra un esempio di utilizzo di una Markup Extension:
<Button Content="{StaticResource SomeString}"/>
L'espressione contenuta fra le parentesi graffe è così composta:
StaticResource)Quando il Markup Extension verrà processato a runtime, restituirà un riferimento alla risorsa richiesta, precedentemente istanziata.
Procediamo con un esempio, più completo, in cui utilizziamo più Markup Extension:
<UserControl x:Class="XAML.MarkupExtension"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:sys="clr-namespace:System;assembly=mscorlib" >
<UserControl.Resources>
<sys:String x:Key="SomeString">Cliccami!</sys:String>
</UserControl.Resources>
<Grid x:Name="LayoutRoot" Background="Azure" Height="300" Width="300">
<Button x:Name="sampleButton" Height="50" Width="100"
Content="{StaticResource SomeString}"
Background="{x:Null}" />
</Grid>
</UserControl>
Nel frammento di codice facciamo uso di due Markup Extension, in un caso utilizziamo StaticResource per impostare la risorsa SomeString contenuta nel ResourceDisctionary dello UserControl, come elemento della proprietà Content del controllo Button. Nel secondo caso usiamo x:Null per impostare la proprità Background del controllo Button a null.
Figura 17. Risultato dell'esempio
Nel framework di Silverlight possiamo trovare i seguenti Markup Extension:
Per utilizare le parentesi graffe come valore letterale, per esempio per visualizzare il testo "{Cliccami!}" sul Button, nella proprità Content dobbiamo, prima di tutto, impostare entrambe le parentesi graffe "{}", le quali saranno considerate come una definizione vuota di un Markup Extension e successivamente, il testo che vogliamo visualizzare, quindi in questo caso il codice XAML del Button risulterà così:
<Button x:Name="sampleButton" Height="50" Width="100"
Content="{}{Cliccami!}" />
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 |