Condividi tramite


Procedura: utilizzare un dizionario risorse relativo all'ambito dell'applicazione

In questo esempio viene illustrato come definire e utilizzare un dizionario risorse personalizzato relativo all'ambito dell'applicazione.

Esempio

Application espone un archivio relativo all'ambito dell'applicazione per le risorse condivise: Resources. Per impostazione predefinita, la proprietà Resources viene inizializzata con un'istanza del tipo ResourceDictionary. Utilizzare questa istanza quando si ottengono e si impostano proprietà relative all'ambito dell'applicazione utilizzando Resources. Per ulteriori informazioni, vedere Procedura: ottenere e impostare le risorse dell'ambito dell'applicazione.

Se si dispone di più risorse impostate tramite la proprietà Resources, è invece possibile utilizzare un dizionario risorse personalizzato per archiviare tali risorse e impostare con esso Resources. Di seguito viene illustrato come dichiarare un dizionario risorse personalizzato utilizzando XAML.

<ResourceDictionary 
    xmlns="https://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="https://schemas.microsoft.com/winfx/2006/xaml" >
    <SolidColorBrush x:Key="StandardSolidColorBrush" Color="Blue" />
    <LinearGradientBrush x:Key="StandardLinearGradientBrush" StartPoint="0.0,0.0" EndPoint="1.0,1.0">
        <LinearGradientBrush.GradientStops>
            <GradientStop Color="White" Offset="0" />
            <GradientStop Color="Black" Offset="1" />
        </LinearGradientBrush.GradientStops>
    </LinearGradientBrush>
</ResourceDictionary>

Lo scambio di interi dizionari risorse tramite Resources consente di supportare temi relativi all'ambito dell'applicazione, dove ogni tema è incapsulato da un singolo dizionario risorse. Nell'esempio riportato di seguito viene illustrato come impostare l'oggetto ResourceDictionary.

<!--Set the Application ResourceDictionary-->
<Application.Resources>
    <ResourceDictionary Source="MyResourceDictionary.xaml" />
</Application.Resources>

Di seguito viene illustrato come è possibile ottenere risorse relative all'ambito dell'applicazione dal dizionario risorse esposto da Resources nel codice XAML.

<!--Set the brush as a StaticResource from the ResourceDictionary-->
<Rectangle Name="Rect" Height="200" Width="100" Fill="{StaticResource ResourceKey=StandardSolidColorBrush}" />

Di seguito viene illustrato come è inoltre possibile ottenere le risorse nel codice.

'Get a resource from the ResourceDictionary in code
Dim GradientBrush As Brush = Application.Current.FindResource("StandardLinearGradientBrush")
//Get a resource from the ResourceDictionary in code
Brush gradientBrush = (Brush)Application.Current.FindResource("StandardLinearGradientBrush");

Quando si utilizza la proprietà Resources, è necessario considerare due aspetti. Innanzitutto, la chiave del dizionario è un oggetto, pertanto è necessario utilizzare esattamente la stessa istanza dell'oggetto sia quando si imposta un valore di proprietà, sia quando lo si ottiene. Si noti che la chiave rileva la differenza tra maiuscole e minuscole quando si utilizza una stringa. Secondariamente, il valore del dizionario è un oggetto, pertanto sarà necessario convertire il valore nel tipo desiderato quando si ottiene un valore di proprietà.

Vedere anche

Riferimenti

ResourceDictionary

Resources

Concetti

Cenni preliminari sulle risorse

Dizionari risorse uniti