Condividi tramite


FrameworkContentElement.Resources Proprietà

Definizione

Ottiene o imposta il dizionario risorse definito localmente corrente.

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à

Risorse attualmente definite in locale. Si tratta di un dizionario di risorse, in cui le risorse all'interno del dizionario sono accessibili tramite chiave.

Attributi

Esempio

Nell'esempio seguente viene stabilita una Resources raccolta in un FlowDocument elemento radice. FlowDocument è una scelta tipica perché è una delle poche FrameworkContentElement classi che hanno senso come elemento radice e le risorse vengono in genere archiviate nella radice della pagina o a livelli ancora più elevati, ad esempio nell'applicazione.

<FlowDocument
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  x:Class=" SDKSample.Page2">
  <FlowDocument.Resources>
    <Style TargetType="{x:Type Paragraph}" x:Key="BluePara">
      <Setter Property="Background" Value="Blue"/>
      <Setter Property="FontSize" Value="18"/>
      <Setter Property="Foreground" Value="LightBlue"/>
      <Setter Property="FontFamily" Value="Trebuchet MS"/>
    </Style>
  </FlowDocument.Resources>
  <Paragraph Style="{StaticResource BluePara}">Lorem ipsum etc.</Paragraph>
</FlowDocument>

Commenti

I dizionari risorse che possono essere definiti completamente o parzialmente in XAML (Extensible Application Markup Language) vengono in genere creati come elemento di proprietà e in genere si trovano nell'elemento radice per qualsiasi singola pagina o per l'applicazione. L'inserimento del dizionario risorse a questo livello semplifica la ricerca da singoli elementi figlio nella pagina (o da qualsiasi pagina, nel caso dell'applicazione). Nella maggior parte degli scenari dell'applicazione è consigliabile definire gli stili come elementi oggetto all'interno di un dizionario risorse o essere definiti come risorse esterne in modo che l'intera risorsa di stile possa essere autonoma(questo approccio consente di separare le responsabilità della finestra di progettazione dalle responsabilità degli sviluppatori separando i file fisici che devono essere modificati).

Si noti che questa proprietà restituisce solo il dizionario risorse dichiarato direttamente all'interno di tale elemento. Questo processo è diverso dal processo di ricerca delle risorse effettivo, in cui un elemento figlio può accedere a qualsiasi risorsa definita in ogni elemento padre, eseguendo una ricerca ricorsiva verso l'alto.

È anche possibile fare riferimento alle risorse dal codice dall'interno della raccolta, ma tenere presente che le risorse create in XAML non saranno sicuramente accessibili fino a quando Loaded non viene generato dall'elemento che dichiara il dizionario. Infatti, le risorse vengono analizzate in modo asincrono e nemmeno l'evento Loaded garantisce che sia possibile fare riferimento a una risorsa definita xaml. Per questo motivo è in genere consigliabile accedere alle risorse definite da XAML solo come parte del codice di runtime o tramite altre tecniche XAML, ad esempio stili o riferimenti alle estensioni delle risorse per i valori degli attributi. Quando si accede alle risorse tramite codice, è essenzialmente equivalente a un riferimento DynamicResource creato da XAML.

L'oggetto sottostante ResourceDictionary supporta i metodi necessari per aggiungere, rimuovere o eseguire query sulle risorse dall'interno della raccolta usando il codice. La Resources proprietà è impostata per supportare lo scenario di sostituzione completa della raccolta di risorse di un elemento in modo che sia nuovo o diverso ResourceDictionary.

Si noti che la sintassi XAML illustrata non include un elemento per .ResourceDictionary Questo è un esempio di sintassi di raccolta implicita; È possibile omettere un tag che rappresenta l'elemento della raccolta. Gli elementi aggiunti come elementi alla raccolta vengono invece specificati. Per altre informazioni sulle raccolte implicite e su XAML, vedi Sintassi XAML in dettaglio. Un caso in cui un ResourceDictionary oggetto viene ancora specificato in modo esplicito come elemento è se si introduce un dizionario unito, nel qual caso in genere non sono presenti elementi figlio per tale ResourceDictionaryoggetto . Per informazioni dettagliate, vedere Dizionari risorse uniti.

Utilizzo dell'elemento della proprietà XAML

<object>
  <object.Resources>
    oneOrMoreResourceElements
  </object.Resources>
</object>

Valori XAML

oneOrMoreResourceElements Uno o più elementi oggetto, ognuno dei quali definisce una risorsa. Ogni elemento della proprietà della risorsa all'interno di ogni ResourceDictionary oggetto deve avere un valore univoco per la direttiva x:Key, che funge da chiave univoca quando i valori vengono recuperati da ResourceDictionary.

Si applica a

Vedi anche