L'articolo è la continuazione della prima parte pubblicata il 17 aprile 2007.
Gli stili
Definire n oggetti nelle risorse per n proprietà non gioverebbe sicuramente né alla leggibilità del codice né alla manutenzione.
Ogni oggetto derivato da FrameworkElement o FrameworkContentElement espone una proprietà Style, del tipo omonimo Style, che è essenzialmente una collezione di coppie proprietà/valore.
<Button>
Ancora Hello World?
<Button.Style>
<Style>
<Setter Property="Button.FontSize" Value="15"/>
<Setter Property="Button.Width" Value="150"/>
<Setter Property="Button.Height" Value="50"/>
<Setter Property="Button.Foreground" Value="White"/>
<Setter Property="Button.Background" Value="Red"/>
<Setter Property="Button.Margin" Value="5"/>
<Setter Property="Button.BitmapEffect">
<Setter.Value>
<DropShadowBitmapEffect Color="Black" Direction="320" ShadowDepth="5" Softness="0.2" Opacity="0.3"/>
</Setter.Value>
</Setter>
</Style>
</Button.Style>
</Button>L'oggetto Style espone la proprietà Setters: una collezione di oggetti Setter che espongono due proprietà di nome Property e Value. Con la prima indichiamo la proprietà da impostare, mentre con la seconda il valore. Il nome della proprietà è spesso preceduto, ma non sempre, dal nome della classe, dove tale proprietà è definita o dalla quale è ereditata. Nell'esempio seguente la prima e la seconda sintassi sono equivalenti, perché la proprietà FontSize è ereditata da Control:
<Setter Property="Button.FontSize" Value="15"/>
<Setter Property="Control.FontSize" Value="15"/>Sfruttando la proprietà Style siamo riusciti a raggruppare tutte le impostazioni in un unico oggetto che potremo tranquillamente inserire tra le risorse per riutilizzarlo tra più elementi dell'interfaccia, anche differenti tra loro.
<StackPanel>
<StackPanel.Resources>
<Style x:Key="MyStyle">
<Setter Property="Control.FontSize" Value="15"/>
<Setter Property="Control.Width" Value="150"/>
<Setter Property="Control.Height" Value="50"/>
<Setter Property="Control.Foreground" Value="White"/>
<Setter Property="Control.Background" Value="Red"/>
<Setter Property="Control.Margin" Value="5"/>
<Setter Property="Control.BitmapEffect">
<Setter.Value>
<DropShadowBitmapEffect Color="Black" Direction="320" ShadowDepth="5" Softness="0.2" Opacity="0.3"/>
</Setter.Value>
</Setter>
</Style>
</StackPanel.Resources>
<Button Style="{StaticResource MyStyle}">
Ancora Hello World?
</Button>
<TextBlock Style="{StaticResource MyStyle}">
NO Hello WPF!
</TextBlock >
</StackPanel>Contenuti dell'articolo
- Pagina 1
- 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!

Volevo provare il codice di esempio, ma quando utilizzo BitmapEffect nella mia pagina XBAP, il browser si ferma al momento del caricamento con un ...
Continua »»» | Rispondi »»»