FrameworkContentElement.Resources Egenskap

Definition

Hämtar eller anger den aktuella lokalt definierade resursordlistan.

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

Egenskapsvärde

De aktuella lokalt definierade resurserna. Det här är en ordlista med resurser, där resurser i ordlistan används av nyckeln.

Attribut

Exempel

I följande exempel upprättas en Resources samling på ett FlowDocument rotelement. FlowDocument är ett typiskt val eftersom det är en av de få FrameworkContentElement klasser som är meningsfulla som ett rotelement, och resurser lagras vanligtvis i sidroten eller på ännu högre nivåer, till exempel i programmet.

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

Kommentarer

Resursordlistor som kan definieras helt eller delvis i XAML (Extensible Application Markup Language) skapas vanligtvis som ett egenskapselement och finns vanligtvis på rotelementet för en enskild sida eller för programmet. Genom att placera resursordlistan på den här nivån blir det enklare att hitta från enskilda underordnade element på sidan (eller från valfri sida, i programfallet). I de flesta programscenarier rekommenderar vi att format definieras som objektelement i en resursordlista eller definieras som externa resurser så att hela formatresursen kan vara fristående (den här metoden hjälper till att skilja designeransvar från utvecklaransvar genom att separera de fysiska filer som behöver redigeras).

Observera att den här egenskapen endast returnerar resursordlistan som deklarerats direkt i elementet. Detta skiljer sig från den faktiska resurssökningsprocessen, där ett underordnat element kan komma åt någon av de resurser som definieras i varje överordnat element och söka rekursivt uppåt.

Resurser kan också refereras till med kod inifrån samlingen, men tänk på att resurser som skapats i XAML definitivt inte kommer att vara tillgängliga förrän efter Loaded har genererats av elementet som deklarerar ordlistan. Faktum är att resurser parsas asynkront, och inte ens händelsen är en försäkran Loaded om att du kan referera till en XAML-definierad resurs. Därför bör du i allmänhet bara komma åt XAML-definierade resurser som en del av körningskoden eller via andra XAML-tekniker, till exempel formatmallar eller resurstilläggsreferenser för attributvärden. När du kommer åt resurser via kod motsvarar det i stort sett en DynamicResource-referens från XAML.

ResourceDictionary Underliggande stöder de metoder som krävs för att lägga till, ta bort eller fråga resurser från samlingen med hjälp av kod. Egenskapen Resources kan anges för att stödja scenariot att helt ersätta resurssamlingen för ett element som ska vara en ny eller annan ResourceDictionary.

Observera att XAML-syntaxen som visas inte innehåller något element för ResourceDictionary. Det här är ett exempel på implicit samlingssyntax. en tagg som representerar samlingselementet kan utelämnas. De element som läggs till som objekt i samlingen anges i stället. Mer information om implicita samlingar och XAML finns i XAML-syntax i detalj. Ett fall där en ResourceDictionary fortfarande uttryckligen anges som ett element är om du introducerar en sammanfogad ordlista, i vilket fall det vanligtvis inte finns några underordnade element för den ResourceDictionary. Mer information finns i Sammanfogade resursordlistor.

Användning av XAML-egenskapselement

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

XAML-värden

oneOrMoreResourceElements Ett eller flera objektelement som var och en definierar en resurs. Varje resursegenskapselement inom varje ResourceDictionary måste ha ett unikt värde för x:Key-direktivet, som fungerar som den unika nyckeln när värden hämtas från ResourceDictionary.

Gäller för

Se även