Questo approccio è preferibile nella creazione di stili complessi che riutilizzano più volte un oggetto, rispetto a definire la risorsa ad esempio nel Panel contenitore, così da evitare strane dipendenze ricorsive, tra lo Style e altri elementi, che possono confondere.
Utilizzando la proprietà BaseOn possiamo inoltre creare un nuovo Style sfruttandone uno esistente.
<StackPanel>
<StackPanel.Resources>
<Style x:Key="BigButton">
<Style.Resources>
<LinearGradientBrush x:Key="YellowToRedBackground " StartPoint="0,0" EndPoint="0,1">
<GradientStop Color="Yellow" Offset="0.0" />
<GradientStop Color="Red" Offset="1" />
</LinearGradientBrush>
<DropShadowBitmapEffect x:Key="ShadowEffect" Color="Black" Direction="320" ShadowDepth="5" Softness="0.2" Opacity="0.3"/>
</Style.Resources>
<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="{StaticResource YellowToRedBackground }"/>
<Setter Property="Control.Margin" Value="5"/>
<Setter Property="Button.IsDefault" Value="True"/>
<Setter Property="Control.BitmapEffect" Value="{StaticResource ShadowEffect}"/>
</Style>
<Style x:Key="SmallButton" BasedOn="{StaticResource BigButton}">
<Setter Property="Control.Width" Value="50"/>
<Setter Property="Control.Height" Value="30"/>
</Style>
</StackPanel.Resources>
<Button Style="{StaticResource BigButton}">
Ancora Hello World?
</Button>
<Button Style="{StaticResource SmallButton}">
NO!
</Button>
</StackPanel>Nell'esempio lo style SmallButton sarà inizializzato con i valori definiti in precedenza dallo Style BigButton e successivamente aggiornato ed eventualmente integrato con quanto definito in SmallButton.
Possiamo utilizzare come base anche uno Style che sfrutta la proprietà TargetType, in questo caso sono necessari alcuni accorgimenti: il primo è che il nuovo style dovrà avere il solito TargetType infine la sintassi utilizzata per impostate la proprietà BasedOn cambia leggermente:
BasedOn="{StaticResource {x:Type Button}}"La Markup Extension x:Type ci permette di recuperare il Type del Button, che viene utilizzato per creare una chiave implicita, quando utilizziamo la proprietà TargetType.
Contenuti dell'articolo
- Pagina 1
- Pagina 5
- Introduzione a .NET Micro Framework
- Gestire transazioni miste con NTFS in Windows Server 2008
- Windows Presentation Foundation 3.5: 3D interattivo e le altre novità del framework
- Le novità di Communication e Workflow Foundation e la loro cooperazione nel .NET Framework 3.5
- .NET Framework 3.5 e Visual Studio 2008: cosa c'è di nuovo
- Gestione delle eccezioni in Windows Communication Foundation
- Sviluppare workflow sequenziali con WF
- WPF: dal DataBinding ai Template - Terza parte
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 »»»