Application.Resources Proprietà

Definizione

Ottiene o imposta un insieme di risorse dell'ambito dell'applicazione, ad esempio stili e pennelli.

public:
 property System::Windows::ResourceDictionary ^ Resources { System::Windows::ResourceDictionary ^ get(); void set(System::Windows::ResourceDictionary ^ value); };
public System.Windows.ResourceDictionary Resources { get; set; }
[System.Windows.Markup.Ambient]
public System.Windows.ResourceDictionary Resources { get; set; }
member this.Resources : System.Windows.ResourceDictionary with get, set
[<System.Windows.Markup.Ambient>]
member this.Resources : System.Windows.ResourceDictionary with get, set
Public Property Resources As ResourceDictionary

Valore della proprietà

ResourceDictionary

Oggetto ResourceDictionary contenente zero o più risorse dell'ambito dell'applicazione.

Attributi

Esempio

In questo esempio viene illustrato come usare XAML insieme alle risorse dell'ambito dell'applicazione per creare un aspetto visivo coerente. Il primo esempio è da App.xaml; il secondo, da MainWindow.xaml.

<Application
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    StartupUri="MainWindow.xaml"
    >

  <Application.Resources>
    <SolidColorBrush x:Key="BackgroundColor" Color="Yellow"></SolidColorBrush>
  </Application.Resources>

</Application>
<Window
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="ApplicationResourcesSnippetSample_XAML" 
    Height="300" 
    Width="300" 
    Background="{StaticResource BackgroundColor}"
    >
  <Grid>
    <!-- Additional XAML. -->
  </Grid>
</Window>

Nell'esempio seguente viene illustrato come impostare una risorsa dell'applicazione nel codice e in XAML (nel file App.xaml in un progetto WPF C# o nel file Application.xaml in un progetto WPF di Visual Basic).

// Set an application-scope resource
Application.Current.Resources["ApplicationScopeResource"] = Brushes.White;
' Set an application-scope resource
Application.Current.Resources("ApplicationScopeResource") = Brushes.White
<Application
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    x:Class="SDKSample.App"
    StartupUri="MainWindow.xaml" 
    Startup="App_Startup" 
    Exit="App_Exit">
    <Application.Resources>
        <SolidColorBrush x:Key="ApplicationScopeResource" Color="White"></SolidColorBrush>
    </Application.Resources>
</Application>

Nell'esempio seguente viene illustrato come ottenere una risorsa dell'applicazione nel codice.

// Get an application-scope resource
Brush whiteBrush = (Brush)Application.Current.Resources["ApplicationScopeResource"];
' Get an application-scope resource
Dim whiteBrush As Brush = CType(Application.Current.Resources("ApplicationScopeResource"), Brush)

Commenti

La Resources proprietà può essere usata per condividere le risorse tra le finestre e gli elementi di un'applicazione. Inoltre, la Resources proprietà è inclusa nel percorso di ricerca della risorsa, che viene attraversata nell'ordine seguente:

  1. Elementi

  2. Windows

  3. Application.Resources

  4. Sistema

Di conseguenza, gli elementi dell'interfaccia utente possono associare alle risorse dell'ambito dell'applicazione. Inoltre, se le risorse cambiano, il sistema di risorse garantisce che le proprietà degli elementi associate a tali risorse vengano aggiornate automaticamente per riflettere la modifica.

Le risorse dell'ambito applicazione offrono un modo semplice per supportare un tema coerente nell'applicazione. È possibile creare facilmente un tema in XAML usando il Application.Resources tag. Tuttavia, se l'applicazione supporta più temi, che possono contenere un numero elevato di elementi del tema, potrebbe essere più semplice gestirli usando un'istanza ResourceDictionary per ogni tema. In questo modo, un nuovo tema può essere applicato impostando la proprietà Resources sull'oggetto appropriato ResourceDictionary.

Esistono due considerazioni da prendere quando si usa Resources. Prima di tutto, la chiave del dizionario è un oggetto, quindi è necessario usare esattamente la stessa istanza dell'oggetto quando entrambe le impostazioni e ottenere un valore della proprietà (si noti che la chiave è distinzione tra maiuscole e minuscole quando si usa una stringa). In secondo luogo, il valore del dizionario è un oggetto, quindi sarà necessario convertire il valore nel tipo desiderato quando si ottiene un valore di proprietà.

Resources è thread safe ed è disponibile da qualsiasi thread.

Si applica a