FrameworkContentElement.Resources Właściwość

Definicja

Pobiera lub ustawia bieżący słownik zasobów zdefiniowany lokalnie.

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

Wartość właściwości

Bieżące zasoby zdefiniowane lokalnie. Jest to słownik zasobów, w którym zasoby w słowniku są używane przez klucz.

Atrybuty

Przykłady

W poniższym przykładzie jest ustanawiana Resources kolekcja w elemecie FlowDocument głównym. FlowDocument jest typowym wyborem, ponieważ jest to jedna z niewielu FrameworkContentElement klas, które mają sens jako element główny, a zasoby są zwykle przechowywane w katalogu głównym strony lub na jeszcze wyższych poziomach, takich jak w aplikacji.

<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>

Uwagi

Słowniki zasobów, które można zdefiniować całkowicie lub częściowo w języku Extensible Application Markup Language (XAML) są zwykle tworzone jako element właściwości i zazwyczaj znajdują się w elemecie głównym dla dowolnej pojedynczej strony lub aplikacji. Umieszczenie słownika zasobów na tym poziomie ułatwia znajdowanie poszczególnych elementów podrzędnych na stronie (lub z dowolnej strony w przypadku aplikacji). W większości scenariuszy aplikacji zaleca się zdefiniowanie stylów jako elementów obiektów w słowniku zasobów lub zdefiniowanie ich jako zasobów zewnętrznych, aby cały zasób stylu mógł być samodzielny (takie podejście pomaga oddzielić obowiązki projektanta od obowiązków deweloperów przez oddzielenie plików fizycznych, które należy edytować).

Należy pamiętać, że ta właściwość zwraca tylko słownik zasobów zadeklarowany bezpośrednio w ramach tego elementu. Różni się to od rzeczywistego procesu wyszukiwania zasobów, w którym element podrzędny może uzyskać dostęp do dowolnych zasobów zdefiniowanych w każdym elemerencie nadrzędnym, wyszukując rekursywnie w górę.

Zasoby mogą być również przywoływały kod z poziomu kolekcji, ale należy pamiętać, że zasoby utworzone w języku XAML na pewno nie będą dostępne, dopóki nie Loaded zostanie zgłoszony przez element, który deklaruje słownik. W rzeczywistości zasoby są analizowane asynchronicznie, a nawet Loaded zdarzenie nie jest gwarancją, że można odwołać się do zdefiniowanego zasobu XAML. Z tego powodu zazwyczaj należy uzyskiwać dostęp tylko do zasobów zdefiniowanych przez język XAML w ramach kodu czasu wykonywania lub za pomocą innych technik XAML, takich jak style lub odwołania do rozszerzeń zasobów dla wartości atrybutów. Gdy uzyskujesz dostęp do zasobów za pośrednictwem kodu, zasadniczo jest to odpowiednik odwołania DynamicResource z języka XAML.

ResourceDictionary Baza obsługuje metody wymagane do dodawania, usuwania lub wykonywania zapytań o zasoby z kolekcji przy użyciu kodu. Właściwość Resources jest ustawiana tak, aby obsługiwała scenariusz całkowitej wymiany kolekcji zasobów elementu na nowy lub inny ResourceDictionary.

Zwróć uwagę, że pokazana składnia XAML nie zawiera elementu dla elementu ResourceDictionary. Jest to przykład niejawnej składni kolekcji; można pominąć tag reprezentujący element kolekcji. Zamiast tego są określane elementy dodawane jako elementy do kolekcji. Aby uzyskać więcej informacji na temat niejawnych kolekcji i języka XAML, zobacz Składnia XAML w szczegółach. Jeden przypadek, w którym ResourceDictionary element jest nadal jawnie określony jako element, to jeśli wprowadzasz scalony słownik, w takim przypadku zwykle nie ma żadnych elementów podrzędnych dla tego ResourceDictionaryelementu . Aby uzyskać szczegółowe informacje, zobacz Scalone słowniki zasobów.

Użycie elementu właściwości języka XAML

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

Wartości XAML

oneOrMoreResourceElements
Co najmniej jeden element obiektu, z których każdy definiuje zasób. Każdy element właściwości zasobu w każdym ResourceDictionary z nich musi mieć unikatową wartość dyrektywy x:Key, która służy jako unikatowy klucz podczas pobierania wartości z klasy ResourceDictionary.

Dotyczy

Zobacz też