Condividi tramite


Application.Resources Proprietà

Definizione

Ottiene o imposta una raccolta di risorse dell'ambito 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à

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

Attributi

Esempio

Questo esempio illustra come usare XAML insieme alle risorse dell'ambito applicazione per creare un aspetto visivo coerente. Il primo esempio è di 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>

L'esempio seguente illustra come impostare una risorsa dell'applicazione nel codice e nel codice 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>

L'esempio seguente illustra 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 delle risorse, attraversata nell'ordine seguente:

  1. Elements

  2. Windows

  3. Application.Resources

  4. System

Di conseguenza, gli elementi dell'interfaccia utente possono essere associati 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. Puoi 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, è possibile applicare un nuovo tema impostando la proprietà Resources sull'oggetto appropriato ResourceDictionary.

Quando si usa Resources. Prima di tutto, la chiave del dizionario è un oggetto , quindi è necessario usare esattamente la stessa istanza dell'oggetto quando si imposta e si ottiene un valore di proprietà (si noti che la chiave fa distinzione tra maiuscole e minuscole quando si usa una stringa). In secondo luogo, il valore del dizionario è un oggetto, quindi è necessario convertire il valore nel tipo desiderato quando si ottiene un valore della proprietà.

Resources è thread-safe ed è disponibile da qualsiasi thread.

Si applica a