Niente di nuovo, ma cosa accade provando a utilizzarlo una seconda volta?
<StackPanel>
<StackPanel.Resources>
<Button x:Key="myResourcesButton">
Esegui
</Button>
</StackPanel.Resources >
<StackPanel>
<StaticResource ResourceKey="myResourcesButton"/>
</StackPanel>
<StackPanel>
<StaticResource ResourceKey="myResourcesButton"/>
</StackPanel>
</StackPanel>Il runtime sollevata un'eccezione, poiché l'oggetto Button deriva da Visual è non può essere figlio di due Visual differenti.
Questo comportamento può essere alterato impostando l'attributo x:Shared su false, cosi facendo per ogni nuovo riferimento viene generata una nuova istanza.
<StackPanel>
<StackPanel.Resources>
<Button x:Key="myResourcesButton" x:Shared="False">
Esegui
</Button>
</StackPanel.Resources>
<StackPanel>
<StaticResource ResourceKey="myResourcesButton"/>
</StackPanel>
<StackPanel>
<StaticResource ResourceKey="myResourcesButton"/>
</StackPanel>
</StackPanel>Al fine di migliorare la riusabilità delle risorse tra più progetti è possibile creare uno o più file separati. Ad esempio creiamo un nuovo file chiamato GradientDictionary.xaml.
Come nodo principale questo file dovrà avere l'elemento ResourceDictionary nel quale possiamo inserire, come abbiamo già fatto, uno o più oggetti.
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<LinearGradientBrush x:Key="YellowToRedBackground " StartPoint="0,0" EndPoint="0,1">
<GradientStop Color="Yellow" Offset="0.0" />
<GradientStop Color="Red" Offset="1" />
</LinearGradientBrush>
<LinearGradientBrush x:Key="WhiteToRedBackground " StartPoint="0,0" EndPoint="0,1">
<GradientStop Color="White" Offset="0.0" />
<GradientStop Color="Red" Offset="1" />
</LinearGradientBrush>
</ResourceDictionary>Per utilizzare il file di risorse è sufficiente modificare la sezione Resources dello StackPanel aggiungendo l'elemento ResourceDictionary e l'attributo Source al fine di specificare per quest'ultimo il percorso del file sotto forma di uniform resource identifier (URI).
<StackPanel VerticalAlignment="Center" HorizontalAlignment="Center">
<StackPanel.Resources>
<ResourceDictionary Source="GradientDictionary.xaml"/>
</StackPanel.Resources>
<Button Background="{StaticResource WhiteToRedBackground}">
Esegui
</Button>
</StackPanel>Contenuti dell'articolo
- Pagina 1
- 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!